Tuesday 10 July 2012

设计模式 (Design Pattern) 介绍&读后感

开始对设计模式(design pattern)理解更多了,也重复地阅读之前所读过的书籍,如框架设计,GOF Pattern  。也许之前在台湾时阅读这类书本时,根本就不理解设计模式是该怎么使用,用处在哪?

我第一次阅读设计模式的感觉?!
什么是设计模式啊(怎么软体工程需要学设计模式)?
何时应该使用设计模式?
怎么好好很直接的程式需要绕一圈来写?这就是所谓的模式吗?
因为设计而设计?这样对吗?

最近翻回之前所购买的书,感觉对设计模式(design pattern)领悟得更多,也许程式员就不能因为阅读而阅读吧!当有使用到时,再翻阅回去会感觉领悟更多。

现在就开始回顾设计模式的历史叻!其实设计模式是为了解决软件开发,更改的复杂度降低,
经过之前开发人员的经历,他们把一些常见的问题给设上模式,以让程式开发的错误降到最低(希望将软件业工程化)。当然也不是100% 工程化,开发人员常见的问题就是客户想改变这些问题,所以也只能接受改变,而让客户的改变可以容易地套上之前所编写设计的系统。

设计模式基本上可被分为3大类
创建型模式(Creational Pattern) :解决物件创建的问题
                                                           (Solution for (new) Object)
结构型型模式(Structural Pattern):处理类和物件间的组合
                                                      (Identifying a simple way to realize relationships between entities)
行为型模式 (Behavioral Pattern):类和物件交互的责任分配
                                                        (Common communication patterns between objects and realize)

少和模式接触当然就不可能牢记23种模式,个人觉得重点还是理解过程。

设计原则(Design Principle) 
1、"开-闭"原则——模块应对扩展开放,而对修改关闭。
2、里氏代换原则——如果调用的是父类的话,那么换成子类也完全可以运行。里氏代换原则是  继承复用的一个基础。
3、合成复用原则——要少用继承,多用合成关系来实现。
4、依赖倒转原则——抽象不应该依赖与细节,细节应当依赖与抽象。
                   要针对接口编程,而不是针对实现编程。
5、接口隔离原则——每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干。
6、抽象类
7、迪米特法则——最少知识原则。不要和陌生人说话。
  


好好地理解这些设计原则,就可以很自然地思考在编写程式时使用适当的模式。

续。。。 应该先介绍UML (类别图)吧~

参考文献 
http://baike.baidu.com/view/66964.htm 
《Head First Design Pattern》

No comments:

Post a Comment