- 抽象
- 封装
- 多态
- 继承
- 封装变化
- 多用组合,少用继承
- 针对接口编程,不针对实现编程
- 为交互对象之间松耦合设计而努力
- 类应该对扩展开放,对修改关闭
- 依赖抽象,不依赖具体类
- 最少知识原则:只和你的密友交谈
- 命令模式:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。
- 代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。
- 装饰者模式:动态地将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。
- 适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本不兼容的类可以协作无间。
- 外观模式:提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。