【笔记】Head First 设计模式 笔记1

设计原则:

1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需变化的代码混在一起。
2.针对接口编程,而不是针对实现编程。
3.多用组合,少用继承。
4.松耦合
5.类应该对扩展开放,对修改关闭
     ——在不修改原有的模块(修改关闭:稳定性)的基础上,能扩展其功能(扩展开放:可扩展性)
6.依赖倒置原则
     要依赖抽象,不要依赖具体类。
     原则:
     a.变量不可以持有具体类的引用。
     b.不要让类派生自具体类。
     c.不要覆盖基类中已实现的方法。
 
模式:
1.策略模式
     定义了算法族,分别封装起来(将算法或行为封装在类中,并在客户类中保持该类的一个引用),让他们之间可以相互替换。
     此模式让算法的变化独立于使用算法的客户。     
     Has-A比Is-A更好。
 
 
2.出版者+订阅者=观察者模式(代表人物——MVC)
     定义了对象间的一对多依赖,一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 
 
 
3.装饰者模式(包装模式更形象)
     动态的将责任附加到对象上。
     此模式提供了比继承更有弹性的替代方案。
 
4.工厂方法模式:
     定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
 
5.抽象工厂模式(创建产品家族):
     提供一个接口,用来创建相关或依赖对象的家族,而不需要明确指定具体类。
抽象工厂里的每一个创建方法都是一个工厂方法。
      
6.单件模式
     考虑多线程时:
     a.将static getInstance()方法同步——影响性能
     b.取消延迟实例化——一开始就会产生一个实例
     c.双重检查枷锁——第一次产生实例后,不再同步

posted on 2013-03-31 21:15  carfieldfei  阅读(137)  评论(0编辑  收藏  举报

导航