我的整个项目基本上分为两部分:
用户创建自定义类并使用辅助类中的方法,如:
\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();
问题是我在几个核心类中使用了一些辅助类。而且我不希望核心类继承任何与助手相关的东西。
在这些核心类中,我也不想让代码更长,并且使用这些帮助器在每个方法中初始化对象。
我应该如何处理?或者也许静态方法在这里不是那么糟糕?
答案 0 :(得分:0)
您写道:
我也不想让代码更长并初始化对象 使用这些助手的每种方法。
我想避免实例化对象,那么你应该坚持使用静态方法。在我的项目中,我使用静态方法来帮助助手,原因完全相同。 然后将这些辅助类用作“函数库”。在这种情况下,类更像是辅助函数的命名空间,而不是实例化的东西。