充分认识单态模式
2008-12-10 23:16 hbb 阅读(337) 评论(0) 收藏 举报作为一个面向过程编程者在转向面向对象编程,并逐渐开始接触设计模式时。我敢说最上手的一个模式就是单态模式(迭代器就别当他是模式了吧...)
他是一个设计模式,但在使用起来又那么的方便。完全没有其他,如工厂模式、策略模式那样的“费劲”。但也正因为如此,这个模式已经快被否定成项目程序中的“罪魁祸首”了,就连当初他的创造者GoF的一员Eric Gamma,也对此提出了怀疑。Google甚至推出了一款JAVA版的“专杀工具”。
这里有篇文章里实现单态模式说起,给出了大量链接,总的是持否定的态度。
而概括下来主要是两点
第一,单态模式就是一个披着设计模式的全局变量。
第二,单态模式从一开始就破坏了几个OOP的原则(如,单一责任原则,摒弃紧耦合原则)。
并且从实际的程序编写和单元测试角度,解析了单态模式是如何的让人无奈至于抓狂。
其实单态模式并没有坏到人人唾弃的份上,至少他的存在能解决一定的问题。
在我看来,还有另一层用处,即给那些想OOP但又怕OOP的人一个低阶的门槛。
我也是在大量的使用单态模式后,发现问题,寻求新的出路,然后一步一步走上来的。如果一开始就从面向过程转向MVC,是肯定不行的。
任何模式都有好坏、取舍的环境。单态模式这些弊端,可能平时不太注意。提出来的目的是要更了解他,而不是否定他。
浙公网安备 33010602011771号