1. 设计模式的本质,就是针对具体问题,以某种方式将变化的部分抽取并封装起来,使其独立于其他不变的部分,不对其造成影响。
2. 设计原则一:封装变化。找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起;
3. 设计原则二:针对接口编程,而不是针对实现编程;
4. 设计原则三:多用组合,少用继承;
5. OO基础:抽象,封装,多态,继承
6. OO原则:封装变化;多用组合,少用继承;针对接口编程,不针对实现编程
7. OO模式:在基础和原则基础上构建出来的一系列设计经验,具有可复用,可扩充和可维护三大特性
8. 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户
9. 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新
10. 设计原则四:为了交互对象之间的松耦合设计而努力;
11. 设计原则五:对扩展开放,对修改封闭;
12. 装饰者模式:动态地将责任附加到对象上。想要扩展功能时装饰者提供有别于继承的另一种选择;
13. 工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类;
14. 依赖倒置原则:要依赖抽象,不要依赖具体类;
15. 代码里减少对具体类的依赖是件“好事”;
16. 不能让高层组件依赖低层组件,而且,不管高层或低层组件,“两者”都应该依赖于抽象(所谓高层组件,是由其他低层组件定义其行为的类)
17. 尽量遵循的指导方针
1)变量不可以持有具体类的引用