Mos*_*ner 4 architecture singleton design-patterns
我正在尝试设计一种更灵活的Singleton形式.
SingletonShared类,该类将作为参数传递给Singleton的构造函数.这两个隐藏在公众背后SingletonFactory,具有静态方法getInstance(key).setAdapter(adapter)的SingletonFactory.使用该方法getShared(key),实现的类ISingletonAdapter
应该返回该SingletonShared实例的值(例如,
SingletonXmlAdapter将Xml文件传递给构造函数,并根据给定的键对某个节点进行反序列化).以上所有都包装Singleton在一起.
现在,出于测试能力的目的,可以选择将Singleton标记为内部类,并使其实现ISingleton公共接口.
谢谢!
我认为您所描述的解决方案SingletonFactory是ServiceLocator模式,而您的Singletons是服务.
这个解决方案可以接受
它依赖于如何和在那里使用单身.单身人士本身并不坏,只要你孤立依赖他们的代码.否则,每次需要测试夹具时,最终会注入一堆复杂的Singletons.
如果你实例化Singletons而不是使用静态getter/setter,那么在不使用DI框架的情况下依赖注入会更加困难,除非你传递单身,但最后你可以得到一长串参数.
是否有更好/更清洁/更短的方法来达到同样的效果?
IoC容器和DI框架(微妙的不同)通常用于控制否则将成为单例的依赖关系.然而,即使您消除了Singletons的邪恶,尝试隔离对特定服务的依赖区域仍然是一种好习惯.
| 归档时间: |
|
| 查看次数: |
712 次 |
| 最近记录: |