在我们编程的时候,我们都在开发我们使用和依赖的实践和模式。然而,随着时间的推移,随着我们的理解、成熟度甚至技术使用的变化,我们逐渐意识到,一些我们曾经认为很棒的实践已经不再适用(或者不再适用)。
我曾经经常使用的一个实践例子是 单一对象模式的使用,但是近年来已经发生了变化。
通过我自己的经验和与同事的长时间争论,我已经认识到 单身并不总是可取的-它们可以使测试更加困难(通过抑制像模仿这样的技术) ,并且可以在系统的各个部分之间产生不必要的耦合。相反,我现在使用对象工厂(通常使用 IoC 容器)来隐藏单例的性质和存在,以免系统中那些不关心或不需要知道的部分知道。相反,它们依赖于工厂(或服务定位器)来获取对这些对象的访问。
本着自我完善的精神,我向社会提出以下问题: