需要设计建议 - 将静态变为普通方法

时间:2013-05-16 15:51:13

标签: php oop

我的整个项目基本上分为两部分:

  • 帮助班

用户创建自定义类并使用辅助类中的方法,如:

\Project\System\Helpers\Class::foo();

因此每个帮助器类中的每个公共方法都声明为静态。我想出了一个改变它的想法,让所有用户自定义类继承一个特殊的类:

class SingleBeingInheritedClass {
   public function helper($class)
   {
      return new \Project\System\Helpers\$class; // it's just to show the idea
   }
}

因此,用户可以编写:

,而不是调用静态函数
$this->helper('class')->foo();

问题是我在几个核心类中使用了一些辅助类。而且我不希望核心类继承任何与助手相关的东西。

在这些核心类中,我也不想让代码更长,并且使用这些帮助器在每个方法中初始化对象。

我应该如何处理?或者也许静态方法在这里不是那么糟糕?

1 个答案:

答案 0 :(得分:0)

您写道:

  

我也不想让代码更长并初始化对象   使用这些助手的每种方法。

我想避免实例化对象,那么你应该坚持使用静态方法。在我的项目中,我使用静态方法来帮助助手,原因完全相同。 然后将这些辅助类用作“函数库”。在这种情况下,类更像是辅助函数的命名空间,而不是实例化的东西。