0

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

  • 助手类

用户创建他的自定义类并使用其中的帮助类中的方法,例如:

\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();

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

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

我该如何处理?或者也许静态方法在这里还不错?

4

1 回答 1

0

你写了:

我也不想使代码更长,并使用这些帮助程序在每个方法中初始化对象。

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

于 2013-05-16T16:10:09.677 回答