设计模式入门
设计模式入门
这是《Head First设计模式(中文版)》第一章的读书笔记。这本书是 2007 年出版的,书中所给出的源码连接已经失效,可在这里下载。说到设计模式,不得不提四人组的经典之作《设计模式》,但这本书的难度很大,买来放在家都发黄了还没读完,而《Head First设计模式(中文版)》可读性就强多了,可能是 Head First 的风格都风趣幽默吧,可以达到轻松学习的效果。
这一章是设计模式入门,以鸭子应用讲述一些设计原则以及策略模式。
复习
OO(Object Oriented,面向对象)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
面向对象主要特征:
-
抽象,抽象是指强调实体的本质、内在的属性。在系统开发中,抽象指的是在决定如何实现对象之前的对象的意义和行为。使用抽象可以尽可能避免过早考虑一些细节。
-
封装,其结果是将对象的表示和实现隐藏起来。
-
多态,在运行时刻接口匹配的对象能互相替换的能力。
-
继承,两个实体间的一种关系,其中一实体是基于另一实体定义的。
设计模式
在软件开发中,CHANGE 是不变的真理,我们总是需要花很多时间在系统的维护和变化上,比原先开发花的时间更多。所以应该致力于提高可维护性和可扩展性的复用程度。这时候设计模式就出现了,设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
原则
-
封装变化
-
多用组合,少用继承
-
针对接口编程,不针对实现编程
策略模式
定义算法族,分别封装起来,让它门之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计模式