论坛首页 编程语言技术论坛

Python单例模式

浏览 13329 次
精华帖 (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"

 这不就是一个类只有一个实例么,还取名叫什么单例模式(就是要把开发人员搞晕),看来还是函数编程来的实在。

   发表时间:2011-01-19  
对于自己不懂的东西最好表现的虚心一点
设计模式请参照四人帮的书
Design Patterns: Elements of Reusalbe Object-Oriented Software
0 请登录后投票
   发表时间:2011-01-19  
你的方法很好,但也有一个很大的问题,它会继承完全失效。

0 请登录后投票
   发表时间:2011-01-19  
liuia 写道
对于自己不懂的东西最好表现的虚心一点
设计模式请参照四人帮的书
Design Patterns: Elements of Reusalbe Object-Oriented Software

那本书我大概扫描了一眼,也看过一些设计模式的书。首先我觉得学习JAVA过后或者有写过JAVA代码的人动不动就给我把设计模式抬出来,这让我很无语。这个不是懂不懂的关系,要按照四人帮那个书,DJANGO的MVC模式还是来自于SMALLTALK,那个书第个设计模式就是这个。
0 请登录后投票
   发表时间:2011-01-19  
marlonyao 写道
你的方法很好,但也有一个很大的问题,它会继承完全失效。


我没有考虑到继承的因素呀
0 请登录后投票
   发表时间:2011-01-19  
liuia 写道
对于自己不懂的东西最好表现的虚心一点
设计模式请参照四人帮的书
Design Patterns: Elements of Reusalbe Object-Oriented Software

还有一点就是我很喜欢函数编程,不是太喜欢面向对象那一套吧,JAVA的那些东西实在是不敢苟同。
0 请登录后投票
   发表时间:2011-01-20  
gof那个当然不是万能的,例如在java中在有容器情况下单例和工厂根本不需要,搜下论坛里面老帖子就知道了。
0 请登录后投票
   发表时间:2011-01-21  
不是很懂python,鄙人是做java的,很奇怪这个单例类,不会有并发性问题么?
如果有多个线程同时访问,有可能会产生多个实例的啊~
0 请登录后投票
   发表时间:2011-01-21   最后修改:2011-01-21
设计模式是给那些强类型、静态语言设计的,像python这样的语言,很多情况下不用设计模式更好些!

here is the offical document:
http://www.python.org/workshops/1997-10/proceedings/savikko.html
0 请登录后投票
   发表时间:2011-01-22  
gaotianpu 写道
设计模式是给那些强类型、静态语言设计的,像python这样的语言,很多情况下不用设计模式更好些!

here is the offical document:
http://www.python.org/workshops/1997-10/proceedings/savikko.html

我也同意,PYTHON,HASKELL,LISP之流更适合函数编程
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics