head first 设计模式笔记

设计模式:


1:找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混合在一起。
2;针对接口编程,而不是针对实现编程。
3:多用组合,少用继承
 一:策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。例子(鸭子会飞的行为(算法))


4:为了交互对象之间的松耦合设计而努力
 二:观察者模式:在对象之间定义一对多的依赖,这样以来,当一个对象改变状态,依赖它的对象就会收到通知。例子(天气预报板)


对应原则1:在观察者模式中,会改变的是主题的状态,以及观察者的数目和类型,用这个模式,你可以改变依赖于主题状态的对象。
却不比改变主题。这就叫提前规划!


对应原则2:主题与观察者都使用接口:观察者利用主题的接口向主题注册,而主题利用观察者的接口通知观察者。
这样可以让两者之间运作正常,又同时具有松耦合的优点。


对应原则3:观察者模式利用“组合”将许多观察者组合进主题中。对象之间的这种关系不是通过继承产生的,
而是在运行时利用组合的方式而产生的。


5: 类应该对扩展开放,对修改关闭


 三:装饰者模式: 动态地将责任附加到对象上。若要拓展功能,装饰者提供了比继承更有弹性的替代方案。例子(星巴克咖啡各种口味装饰)
 
 四:工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。例子(披萨店生产披萨)
 
6:依赖倒置原则,要依赖抽象,不要依赖具体类 
 五:抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
 
 六:单件模式确保一个类只有一个实例,并提供一个全局访问点。(私有构造器,静态方法,静态变量,注意线程,或者在类构造函数外部直接定义)
   急切实例化,双重检查加锁

猜你喜欢

转载自blog.csdn.net/t567g123/article/details/79990059