设计模式 列表
我为什么要学习设计模式?
随便找个招聘网站进去看看,对于程序员这种职位来说,动不动要求几年的工作经验。所以说,程序员的经验是很重要的。
那设计模式和经验有什么关系? 可以说,设计模式是面向对象程序设计过程中的经验。人们在长期的程序设计中,为了解耦,为了好扩展,为了便于程序的维护等等,总结了各种能适应各种情况的编程经验,后来4人帮对设计模式加以总结和分类,就有了设计模式一说。
如果没有设计模式,以往我们会把程序设计成模块,要用时就copy-paste,这叫代码复用。现在有了设计模式,我们在设计一个程序时,就可以沿用别人总结的设计模式,这些模式往往是经过一大批程序员、一大批项目进行实际验证,确实能够起到优化代码、使代码便于维护的作用,这叫经验复用。
设计模式列表
下面的设计模式列表来源于我阅读的《Head First 设计模式》一书。
- 策略模式 (封装可互换的行为,然后采用委托来决定采用哪一个行为)
- 观察者模式 (让对象能够在状态改变时被通知)
- 装饰者模式 (包装一个对象,以提供新的行为)
- 工厂方法模式 (由子类决定要创建具体的类是哪一个)
- 抽象工厂模式 (允许客户创建对象的家族,而无需指定他们的具体类)
- 单例模式 (确保有且只有一个对象被创建)
- 命令模式 (封装请求成为对象)
- 适配器模式 (封装对象,以提供不同的接口)
- 外观模式 (简化一群类的接口)
- 模板方法模式 (由子类决定如何实现一个算法中的步骤)
- 迭代器模式 (封装集合,统一集合的访问接口)
- 组合模式 (客户可以用一致的方式处理对象集合和单个对象)
- 状态模式 (封装了基于状态的行为,并使用委托在行为之中切换)
- 代理模式 (包装对象,以控制对此对象的访问)
- 复合模式 (多种设计模式的组合)
《Head First 设计模式》这本书确实不错,内容轻松。而且当时看这本书时总是饿,因为这本书总是讲吃的,动不动就来个披萨!