FIRST
00原则
封装变化
多用组合,少用继承
针对接口编程,不针对实现编程
为交互对象之间的松耦合设计而努力
对扩展开放,对修改关闭
要依赖抽象,不要依赖具体类。
模式定义
1.策略模式:定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变法独立于使用他们的客户。
2.观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
3.装饰者模式:动态地将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。
4.工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类
5.抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家庭,而不需要明确指定具体类
6.单例模式:确保一个类只有一个实例,并提供一个全局访问点.
7.命令模式:将"请求"封装成对象,以便使用不同的请求\队列或者日志来参数化其他对象.命令模式也支持可撤销的操作.