Mou*_*hna 6 testing singleton design-patterns subclassing
我在使用picocontainer时看到了这一点.他们说你必须避免单身.因为Singleton模式使得类(以及可能依赖于它的所有其他类)几乎不可能是可测试的.子类化或为Singleton类创建模拟对象非常困难.
但是如果你绝对需要它,那么测试和子类化问题是否有解决方法?
难以测试单例的是执行单例的代码(意思是public static MySingleton getInstance() {...}
样板).使用像Picocontainer或Guice或Spring这样的控件反转容器可以从对象中删除该问题,现在:
它可以实例化,并在测试中将协作者插入其中而不会出现问题.
调用单例的代码不必知道它正在查找哪个类(如果必须调用静态方法则需要知道它).
我将picocontainer网站上的建议解释为与此类似.他们告诉您的是,让我们的容器为您管理组件的范围,不要将范围执行代码硬连接到它们中.
归档时间: |
|
查看次数: |
172 次 |
最近记录: |