设计模式笔记(转)
本文转自:http://www.cnblogs.com/windlaughing/archive/2013/04/10/3013031.html
手头有一本设计模式,但是总是有闲事坚持不下去,转载了大神的笔记总结,下周坚持看完!!!!!
笔者所发表的设计模式系列的随笔一共包含15篇,归纳总结了《Head First 设计模式》一书中的内容。在这些随笔中,尽量用简洁、概括的语言说明每个模式的概念、特点、用法,并配以图片(类图、流程图)给读者一种直观、具体的印象。希望大家能有所收获。
1、策略模式 The Strategy pattern
2、观察者模式 The Observer Pattern
3、装饰者模式 The Decorator Pattern
4、工厂方法模式 The Factory Method Pattern
5、抽象工厂模式 The Abstract Factory Pattern
6、单例模式 The Singleton Pattern
7、命令模式 The Command Pattern
8、适配器模式 The Adapter Pattern
9、外观模式 The Facade Pattern
10、模板方法模式 The Template Method Pattern
11、迭代器模式 The Iterator Pattern
12、组合模式 The Composite Pattern
13、状态模式 The State Pattern
14、代理模式 The Proxy Pattern
15、复合模式 The Compound Pattern
- 装饰着: 包装一个对象,已提供新的行为
- 状态: 封装了基于状态的行为,以使 状态拥有者将行为委托到当前的状态
- 迭代器: 在对象的集合之间游走,而不暴露集合的实现
- 外观: 简化一群类的接口
- 策略: 封装可以互换的行为,并使用委托来决定要使用哪一个。
- 代理: 包装对象,以控制对此对象的访问。
- 工厂方法: 封装实例化的行为,工厂子类决定实例化哪个具体的类、采用什么策略实例化类
- 适配器: 封装对象并提供不同的接口
- 观察者: 让对象能够在状态改变时被通知
- 模板方法:父类定义算法的模板, 由子类决定如何实现算法中的某些步骤
- 组合: 客户用一致的方法处理对象的集合和单个对象
- 单件: 确保有且只有一个对象被创建
- 抽象工厂: 允许客户创建对象的家族,而无需指定它们的具体类
- 命令: 封装请求,成为对象
- 装饰者: 包装另一个对象,并提供额外的行为
- 外观: 包装许多对象,以简化它们的接口
- 代理:包装另一个对象,并控制对它的访问
- 适配器:包装另一个对象,并提供不同的接口
- “封装变化”。找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码放在一起。
- 针对接口编程,而不是针对实现编程。
- 对用组合,少用继承。
- 为交互对象之间的松耦合设计而努力。
- 对扩展开放,对修改关闭。
- 要依赖抽象,不要依赖具体类
- 最少知识原则:只和你的密友谈话
- 好莱坞原则:(高层组件对待底层组件的方式)别调用(打电话给)我们,我们会调用(打电话给)你。
- 单一责任,一个类应该只有一个引起变化的原因
- 问题:包括目标和约束。
- 解决方案:一个通用的设计,用来解决约束,达到目标。