dev*_*ium 5 c# java inheritance singleton
Singleton课程应该允许生孩子吗?我们应该密封吗?优缺点都有什么?
为了能够从Singleton类继承,我们必须使构造函数受保护而不是私有.现在,这在c#中会很好,但java中受保护的单词给了子类和包类访问构造函数.这意味着不仅从我们的Singleton继承的类可以访问构造函数,而且同一个包中的其他类也可以这样做.
我对这些事实感到有些困惑.也许我正在做一件大惊小怪的事情,不用太担心?到现在为止,我从来没有必要尝试继承单身人士,所以也许这只是一个学术问题!
谢谢
更好的解决方案是使用IoC容器框架来处理类的"Singleton"(生命周期)方面.此时,您可以使用POJO并简单地继承它.
编辑:一些可能有用的链接:
寻找那些处理终身管理的人.您希望能够配置容器(其作用类似于通用工厂),以便对"Singleton"类的实例的请求始终返回相同的实例(至少对于同一容器).通常,只有一个容器实例位于应用程序的最高级别.
是的,单身人士应该密封.不,他们不应该继承.
其原因是,主(真仅一个Singleton的)行为是在某个预定的时间来创建自己的一个实例.由于此功能是静态的,因此无法覆盖,因此必须重复此功能.一旦你开始复制,你有一个单例的多个实例,这没有多大意义.
无论是那种,你最终都会遇到竞争条件或其他冲突,因为"派生"的单身人士争夺对全球实例的控制权,这不仅没有意义,而且是危险的.
Singleton继承问题有一些破解性的解决方法,但这就是它们 - 黑客.Singleton模式不适合继承.
归档时间: |
|
查看次数: |
1791 次 |
最近记录: |