不宜咖啡 » 日志 » 关于python里面的Singleton模式
关于python里面的Singleton模式
3751 发表于 2006-08-23 20:12:46
看了一下,我马上想出以下解决方案:
class Singleton:
def __init__(self):
pass
def __call__(self):
return self
Singleton = Singleton()
好让我们写下测试代码
def test1():
s1 = Singleton()
s2 = Singleton()
assert s1 is s2
嗯,一切OK!
慢,真的一起OK了吗?让我们增加以下测试代码:
def test2():
s1 = Singleton()
s2 = Singleton.__class__()
assert s1 is s2
faint这回不行了!郁闷!不过这可以做为一种备选方案。但是真的没有更好的办法吗?在啄木鸟上面提到了两种解决方案。不过第一种解决方案我认为实际上是实现的Monostate模式。第2种解决方案才是真正的Singleton!
别人真牛啊!自己的水平还比较菜,还有很大的提高空间。
class Singleton:
def __init__(self):
pass
def __call__(self):
return self
Singleton = Singleton()
好让我们写下测试代码
def test1():
s1 = Singleton()
s2 = Singleton()
assert s1 is s2
嗯,一切OK!
慢,真的一起OK了吗?让我们增加以下测试代码:
def test2():
s1 = Singleton()
s2 = Singleton.__class__()
assert s1 is s2
faint这回不行了!郁闷!不过这可以做为一种备选方案。但是真的没有更好的办法吗?在啄木鸟上面提到了两种解决方案。不过第一种解决方案我认为实际上是实现的Monostate模式。第2种解决方案才是真正的Singleton!
别人真牛啊!自己的水平还比较菜,还有很大的提高空间。
相关日志:
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
