Design patterns 用什么取代单身?

Design patterns 用什么取代单身?,design-patterns,architecture,oop,singleton,Design Patterns,Architecture,Oop,Singleton,单例常常被认为是一个糟糕的设计选择,所以当你想要避免它们时,你应该如何设计应用程序呢?你可以使用这样的概念来向你注入你所依赖的服务(基本上是你使用的单例),而不是提供对它们的全局引用 只要以这样的方式设计您的应用程序,即不管它是否是单例传递给您的对象 考虑一下你是否有MySingleton.Instance在里面->这看起来很糟糕,而且你和它紧密结合在一起。 如果你在一个方法中将MySignleton作为一个参数传递,并且它在外部被实例化为MySingleton.Instance或new MyS

单例常常被认为是一个糟糕的设计选择,所以当你想要避免它们时,你应该如何设计应用程序呢?

你可以使用这样的概念来向你注入你所依赖的服务(基本上是你使用的单例),而不是提供对它们的全局引用

只要以这样的方式设计您的应用程序,即不管它是否是单例传递给您的对象

考虑一下你是否有MySingleton.Instance在里面->这看起来很糟糕,而且你和它紧密结合在一起。
如果你在一个方法中将MySignleton作为一个参数传递,并且它在外部被实例化为MySingleton.Instance或new MySingleton()->哦,我仍然可以模拟或更改它,所以这并不重要。

特别是,DI框架可以简化所需的大量连接,提供单例的便利,但是,如果需要的话,它具有更好的绝缘性,并有可能在将来扩展到多个实例。我想说,它们可能是错误的实现选择的一部分,而不是错误的设计选择。