Singleton还是Static?php的最佳实践


Singleton or Static? Best practice For php?

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

public function method(Request $request);

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

  1. 使用Singleton和非静态类var

    class Request{
    protected $var;
    }
    
  2. 使用静态无功的新实例

    class Request{
    protected static $var;
    }
    

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

但是,我建议您使用singleton设计模式来访问Request对象。

为什么

  • 这种模式适合您的需要,它尊重Request类的"唯一对象实例"
  • 开发商应该意识到这种结构,这是可持续性的证明
  • 封装
  • 设计模式99%是"最佳实践"

依赖项注入呢

根据我的经验,我建议你看看工厂的设计模式。
您将集中创建对象,依赖项注入将更加容易和干净。


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

希望这对你有帮助。

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

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