单身人士还是静态?最好的做法对于PHP?

时间:2016-05-12 07:21:50

标签: php dependency-injection static singleton

我构建了小型mvc结构,我还创建了基于Reflection类的小型基本Dependency Invoker。 我的问题是哪一个是使用依赖类的最佳实践。 例如,我有类Call Request,我将使用。

public function method(Request $request);

我的问题是如何加载请求类

  1. 使用Singleton和非静态类var

    class Request{
    protected $var;
    }
    
  2. 使用具有静态Var的新实例

    class Request{
    protected static $var;
    }
    

2 个答案:

答案 0 :(得分:0)

最干净的方法既不是那些方法。相反,您应该将DC传递给需要它的类构造函数。

拥有一个依赖容器是足够松散的,因为它不会过度使用全局结构(静态元素是全局的)。

答案 1 :(得分:0)

单例模式和“带静态的新实例”之间的选择并不能真正解决依赖注入问题。

但我建议您使用singleton design pattern访问您的Request对象。

为什么?

  • 此模式符合您的需求,它尊重您的Request类的“唯一且唯一的对象实例”。
  • 开发人员应该了解这种结构,这是可持续性的证明。
  • 封装
  • 设计模式是99%“最佳实践”

依赖注入?

根据我的经验,我建议你看看factory design pattern
您将集中创建对象,并且依赖注入将更容易和更清晰。


当然,这只是我的代码方式,我不假装有最佳实践,这应该是可以讨论的。

希望这会对你有所帮助。