2010-09-21 157 views
3

我刚开始学习OOP,对于执行函数或OOP的好处我有点困惑。我知道OOP在组织你的代码方面更具多功能性,但是例如,我有50行代码,发生在我网站的7/10页上。创建一个文件并在文件中添加一个函数,然后使用一个include,或者对一个类执行相同的操作会更好吗?此外,将群体集中到一个文件并包括它会更好吗?如果任何人有一些洞察力,可能有助于澄清我的困惑,我会很感激。函数与OOP问题

+1

请注意,仅仅因为您将函数放入类中作为“集合”,并不一定会使其成为“OOP”编程。它或多或少会被视为查看/管理代码的更简单方法。 – 2010-09-21 22:38:34

+1

@premiso,说得好。 OO或程序编程都不会自动给你组织。无论样式如何,您都可以编写(联合)组织代码。 – Matthew 2010-09-21 22:48:54

+0

感谢你们,感谢它 – Scarface 2010-09-21 22:58:08

回答

3

适当的指标是有用的。

如果此代码只做一件事,接受一些输入参数并返回单个结果,那么它是一个函数。

如果代码可以收集数据,并且对这些数据做了一些棘手的事情,并且您可以专门重用结果或获得不同的结果,然后将其转换为对象。

+0

感谢您的回复马里奥,欣赏它。 – Scarface 2010-09-21 22:56:18

2

如果你有一个50行的功能,那么把它放到一个文件中并把它包含在你的页面上没什么问题。

当你有更多的代码时,OOP的好处就来了。每个文件都有一个类是标准做法。

+0

感谢您的回复 – Scarface 2010-09-21 22:55:23

+0

它被认为效率低下,有多个这样的包括,例如,对于页脚或标题或一些其他简单的信息,因为它会创建更多的http请求? – Scarface 2010-09-21 22:57:20

+2

没有。包含其他文件所需的时间非常短,无关紧要。无论如何,你从这样做得到的维护提升会弥补它的不足。想象一下,如果你必须改变页眉和页脚,你必须这样做在100个文件,而不是2. – Galen 2010-09-21 23:05:34

1

几乎所有的“实用程序”功能都可以按功能组合在一起。你从一个或两个开始......最后得到一个充满了一百个杂项功能的文件。所以我绝不会使用全局函数来重用代码。相反,考虑:

<?php 
class Group 
{ 
    static public function func1() { } 
    static public function func2() { } 
} 

Group::func1(); 
?> 

在PHP 5.3,你可以使用命名空间来代替:

<?php 
namespace Group; 

function func1() { } 
function func2() { } 
?> 

<?php 
// from a different file/global namespace: 
Group\func1(); 
?> 

现在使用类VS功能有关......这很简单。如果某些功能组“拥有”数据或需要记住某种状态,则几乎肯定要使用某个类。

+0

感谢您的回应,当您说自己的数据,或需要记住一个国家时,您的意思是什么。你能举一个例子吗?再次感谢。 – Scarface 2010-09-21 22:54:15

+1

很难给出一个很好的解释,而不会涉及到很多细节。你可能想搜索这个网站和其他的一般“为什么/何时使用oop/classes”的问题。但是可以这么想:如果你从一个函数内部访问全局数据或者从函数到函数传递大量/部分数组,那么你可能应该使用类。 – Matthew 2010-09-21 23:23:20

+0

好的,谢谢konforce – Scarface 2010-09-21 23:24:45