函数与对象最佳实践

6

我想知道关于函数和对象的最佳实践。例如,我想执行一个名为 "整理" 的操作。它将以我的数据作为输入,对其进行整理并返回。

现在我可以用两种方式来实现这个操作。一种方式是使用一个简单的函数,另一种方式是使用一个类。

Function: $data = tidy($data);
Class:
$tidy = new Tidy();
$data = $tidy->clean($tidy);

现在把它变成一个类的好处是我不需要先加载这个类。我可以简单地使用php的自动加载功能来实现。
另一个例子是数据库类。现在每个人似乎都在使用一个单独的类来进行数据库连接。但我们通常只有一个该类的对象。从某种意义上说,这是否与类和对象的定义相矛盾,因为我们仅使用该类来实例化一个对象?
我有点不明白何时使用函数,何时使用类。关于这个问题,有什么最佳实践或指南吗?
谢谢, Alec
4个回答

4
对于只做一件事情的东西,我会使用一个函数。如果更复杂些,我会考虑使用一个对象。
我花时间查看了一些(可能很丑陋和可怕的)PHP代码,实际上有些东西本可以作为对象完成,但却留作函数。例如时间转换和字符串替换。

4
  • 函数通常只执行一个特定的任务。

  • 对象代表与之相关联的任务(方法)的某些东西。

对于 tidy,使用函数就够了。简单明了。 ;-)


1
我个人会创建一个名为“data”的对象来处理数据,然后在其下面添加一个整理方法。
这种模式可以让你在数据上执行的任务数量扩展,同时将其全部包含在一个漂亮的自包含块中。

0
对于您的情况,我会将其制作成一个函数,可能是一个静态函数,放在类似“util”类中(该类的唯一目的是充当命名空间 - 它将所有有用的方法组合在一起)。作为一个经验法则,只有在需要存储一些需要在多个函数调用之间保留的数据时才使用对象。这就是为什么数据库方法被设计为对象的一部分,因为它们存储在多个函数调用之间使用的数据库句柄。是的,只有一个数据库对象,但将其作为对象分组所有与数据库相关的内容到一个地方,使其更易于维护和保持无错误。

是的,我有很多“util”类,它们更多或少是相关函数的集合。 - Philip Morton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接