在OOP中存储静态方法的位置?

时间:2009-12-24 19:08:03

标签: php oop static

我有一个Blog类,可以完全按照您的想法创建一个对象并处理它。那部分很干净。

我现在需要一个能够快速返回我数据库中所有博客的功能(不一定与博客对象相关)。因此,我认为静态方法将是一个不错的选择。

我的问题是,我应该在哪里存储这种静态方法?以下是我能想到的几个选项:

  • 将它作为静态方法存储在Blog类中(可能是臭,因为它与类创建的对象无关?)

  • 为博客静态函数创建一个新类(似乎过多)

  • 找到一个更好的方法来解决这个问题(是的,但是什么?)

5 个答案:

答案 0 :(得分:2)

创建一个名为BlogService的类/接口,其中包含count方法。其他方法,例如findAllfindById

答案 1 :(得分:1)

您还可以在类中封装数据库访问,并在那里添加新方法。

答案 2 :(得分:1)

据推测,有些事情是管理您创建的多个Blog对象?如果不是,那应该是,而且这就是方法所属的地方 - 不需要它是静态的。

答案 3 :(得分:1)

  

找到更好的方法来解决这个问题   完全(是的,但是什么?)

模型视图控制器

在此阶段将您的博客转换为“控制者”

创建一个可以处理所有数据库方法的“模型”

From Class Blog根据需要调用模型(此时还建议重构所有数据库请求进入模型)。

(有关MVC搜索CodeIgniter的非常好的介绍)。

答案 4 :(得分:0)

您不需要静态方法,但需要静态变量。静态方法只是对象中的函数,它不接受对象而只接受来自外部的变量。