the5fire

关注Python、Django、Vim、Linux、Web开发、团队管理和互联网--Life is short, we need Python.


设计模式的误区之一

作者:the5fire | 标签:   | 发布:2010-12-25 12:01 a.m. | 阅读量: 8899, 8683
今天继续看建造者模式,打算把昨天的文章最后的那个图给实现以下,使用反射和泛型,等所有代码快写完的时候发现实现起来远不如初始的Builder代码简洁。虽然灵活性是提升了,可以产生不同的产品了,但发现目的搞错了。我是用不同的Builder来产生不同的Product,看上篇文章最后的图就知道了,再看看建造者模式的定义:使用相同的构建过程。阿门,佛祖呀,弟子错了。

然后就开始思考错误产生原因,以及这种错误产生的意义。

现仔细想想,之所以会产生这种错误,是因为我在对Builder模式进行分析时希望依照设计模式的原则来对其进行优化,使其更加灵活实用。不过在分析时却是分析过了头,最后把Builder整容整成了神马模式(我也不清楚),最重要的一点需要提一下的是:我在无意识的想用这个模式来解决所有可能出现的问题。显然这是不可能的,因为模式都是根据某种场景应运而生的,当然也不是说绝对不可能解决所有问题,只不过你需要付出一定的代价。就像是你用铁锤也砸开汽车门,但这并不能说明你的开锁技巧很高明。

我觉得这个错误还是蛮有意义的嘛:

意义之一:在研究设计模式的时候忘了设计模式,心里只有怎么使用设计模式解决问题,以及这个设计模式解决问题是不是恰当,如果不恰当我要怎么灵活使用这个模式。

意义之二:通过打破Builder模式,了解到单独的一个模式的力量是有限的,就像是使用Builder模式产生不同的产品一样,这显然不是Builder擅长的,因此要将他和其他模式结合起来,才能发挥巨大威力。

总结一下:
误区之一就是:打算用该模式解决所有的问题,忽略了个人特点,不,是个类特点。

Ps:纯属个人发扬阿Q精神,读者一笑而过,一笑而过。

- from the5fire.com
----EOF-----

微信公众号:Python程序员杂谈


其他分类: