为什么要用设计模式
2007-04-06 14:22
239 查看
为什么要用设计模式
A l i c e:我要一份涂了奶酪以及果酱的白面包、加了香草冰淇淋的巧克力汽水、夹了培根的火烤起司三明治、鲔鱼色拉土司、香蕉船(有冰淇淋和香蕉片)、一杯加了奶精和两颗糖的咖啡...嗯...
还有一个烧烤汉堡!
F l o:给我一份C.J.白的,一个黑与白,一份杰克班尼,一份Radio,一份主厨船,一个普通咖啡,还有给我烧一个!
这两人点的餐有何不同? 其实没有差异, 其实都是一份单, 只是A l i c e 讲话的长度多了一倍,而且快餐店的厨师已经感到不耐烦了。
什么是Flo有的,而Alice没有?答案是,Flo和厨师之间有『共享的词汇』,Alice却不懂这些词汇。共享的词汇不仅方便顾客点餐,也让厨师不用记太多事,毕竟这些餐点模式都已经在他的脑海中了呀!
设计模式让你和其他开发人员之间有共享的词汇,一旦懂这些词汇,和其他开发人员之间沟通这些观念就很容易,也会激起那些不懂的程序员想开始学习设计模式。设计模式也可以帮助你提升思考架构的层次到模式层面,而不是停留在琐碎的对象上。
面向对象原则,适用于所有的模式。当你无法找到适当的模式解决问题时,采用这些原则可以帮助你。
OO设计原则:
1、找出应用中可能需要变化之处,把它们独立出来, 不要和那些不需要变化的代码混在一起。这是我们的第一个设计原则
2、针对接口编程,而不是针对实现编程。
3、多用组合,少用继承。
把会变化的部分取出并「封装」起来,好让其他部分不会受到影响。结果如何?代码变化之后,出其不意的部分变得很少,系统变得更有弹性。
A l i c e:我要一份涂了奶酪以及果酱的白面包、加了香草冰淇淋的巧克力汽水、夹了培根的火烤起司三明治、鲔鱼色拉土司、香蕉船(有冰淇淋和香蕉片)、一杯加了奶精和两颗糖的咖啡...嗯...
还有一个烧烤汉堡!
F l o:给我一份C.J.白的,一个黑与白,一份杰克班尼,一份Radio,一份主厨船,一个普通咖啡,还有给我烧一个!
这两人点的餐有何不同? 其实没有差异, 其实都是一份单, 只是A l i c e 讲话的长度多了一倍,而且快餐店的厨师已经感到不耐烦了。
什么是Flo有的,而Alice没有?答案是,Flo和厨师之间有『共享的词汇』,Alice却不懂这些词汇。共享的词汇不仅方便顾客点餐,也让厨师不用记太多事,毕竟这些餐点模式都已经在他的脑海中了呀!
设计模式让你和其他开发人员之间有共享的词汇,一旦懂这些词汇,和其他开发人员之间沟通这些观念就很容易,也会激起那些不懂的程序员想开始学习设计模式。设计模式也可以帮助你提升思考架构的层次到模式层面,而不是停留在琐碎的对象上。
面向对象原则,适用于所有的模式。当你无法找到适当的模式解决问题时,采用这些原则可以帮助你。
OO设计原则:
1、找出应用中可能需要变化之处,把它们独立出来, 不要和那些不需要变化的代码混在一起。这是我们的第一个设计原则
2、针对接口编程,而不是针对实现编程。
3、多用组合,少用继承。
把会变化的部分取出并「封装」起来,好让其他部分不会受到影响。结果如何?代码变化之后,出其不意的部分变得很少,系统变得更有弹性。
相关文章推荐
- 为什么MVC不是一种设计模式? ---比较Backbone和Ext4.x在MVC实现上的差异
- 为什么学习Java三大框架SSH与MVC的设计模式
- 为什么GOF的23种设计模式里面没有MVC?
- java二十三种设计模式----(二)单例设计模式 :“懒汉式”与“饿汉式”的区别 为什么通常使用饿汉式
- 对MVC的理解?为什么要用MVC?在Cocoa中MVC是怎么实现的?你还熟悉其他的OC设计模式或别的设计模式吗
- 为什么MVC 不是设计模式
- 设计模式学习-为什么要采用设计模式
- 设计模式培训之一:为什么要用单例模式?
- 为什么MVC不是一种设计模式
- 设计模式之:Factory模式进化论(1)为什么要有工厂模式
- 为什么学习设计模式
- 浅析设计模式之策略模式--为什么总是继承?
- 为什么要学习设计模式?
- 设计模式培训之一:为什么要用单例模式?
- 为什么MVC不是一种设计模式
- 为什么MVC不是设计模式?
- [Design]设计模式-- 为什么要学习设计原则/模式
- 陈梓涵:我们为什么要学习设计模式
- 为什么GOF的23种设计模式里面没有MVC?
- 为什么MVC不是一种设计模式