锁定老帖子 主题:Python单例模式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-19
网上曾经看到过PYTHON的面试题中有一个是PYTHON的单例模式,说实话,用了这么久的PYTHON,第一次听说单例模式,GOOGLE一下单例模式的关键词,出来的几页面全是JAVA的,想想自己早年也看过一些JAVA的书,先不谈语法,JAVA的很多设计完全就是要把开发者搞晕。UNIX的KISS原则不是很好么,非要把自己搞的很高深,现在的C++的复杂度不就是未来JAVA想要弄的么,一个开发者不学习个半年到1年,JAVA的很多东西根本就无法上手,我们所倡导的敏捷和开发效率,根本就无从谈起了。扯了这么多,还是看看SATCKOVERFLOW上单例模式吧 class Singleton(object): _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(Singleton, cls).__new__( cls, *args, **kwargs) return cls._instance if __name__ == '__main__': s1=Singleton() s2=Singleton() if(id(s1)==id(s2)): print "Same" else: print "Different" 这不就是一个类只有一个实例么,还取名叫什么单例模式(就是要把开发人员搞晕),看来还是函数编程来的实在。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-01-19
对于自己不懂的东西最好表现的虚心一点
设计模式请参照四人帮的书 Design Patterns: Elements of Reusalbe Object-Oriented Software |
|
返回顶楼 | |
发表时间:2011-01-19
你的方法很好,但也有一个很大的问题,它会继承完全失效。
|
|
返回顶楼 | |
发表时间:2011-01-19
liuia 写道 对于自己不懂的东西最好表现的虚心一点 设计模式请参照四人帮的书 Design Patterns: Elements of Reusalbe Object-Oriented Software 那本书我大概扫描了一眼,也看过一些设计模式的书。首先我觉得学习JAVA过后或者有写过JAVA代码的人动不动就给我把设计模式抬出来,这让我很无语。这个不是懂不懂的关系,要按照四人帮那个书,DJANGO的MVC模式还是来自于SMALLTALK,那个书第个设计模式就是这个。 |
|
返回顶楼 | |
发表时间:2011-01-19
marlonyao 写道 你的方法很好,但也有一个很大的问题,它会继承完全失效。 我没有考虑到继承的因素呀 |
|
返回顶楼 | |
发表时间:2011-01-19
liuia 写道 对于自己不懂的东西最好表现的虚心一点 设计模式请参照四人帮的书 Design Patterns: Elements of Reusalbe Object-Oriented Software 还有一点就是我很喜欢函数编程,不是太喜欢面向对象那一套吧,JAVA的那些东西实在是不敢苟同。 |
|
返回顶楼 | |
发表时间:2011-01-20
gof那个当然不是万能的,例如在java中在有容器情况下单例和工厂根本不需要,搜下论坛里面老帖子就知道了。
|
|
返回顶楼 | |
发表时间:2011-01-21
不是很懂python,鄙人是做java的,很奇怪这个单例类,不会有并发性问题么?
如果有多个线程同时访问,有可能会产生多个实例的啊~ |
|
返回顶楼 | |
发表时间:2011-01-21
最后修改:2011-01-21
设计模式是给那些强类型、静态语言设计的,像python这样的语言,很多情况下不用设计模式更好些!
here is the offical document: http://www.python.org/workshops/1997-10/proceedings/savikko.html |
|
返回顶楼 | |
发表时间:2011-01-22
gaotianpu 写道 设计模式是给那些强类型、静态语言设计的,像python这样的语言,很多情况下不用设计模式更好些!
here is the offical document: http://www.python.org/workshops/1997-10/proceedings/savikko.html 我也同意,PYTHON,HASKELL,LISP之流更适合函数编程 |
|
返回顶楼 | |