Head First设计模式梳理

2016-11-15  本文已影响34人  三余无梦_

基础:封装、抽象、继承、多态

原则:

封装变化

多用组合、少用抽象

针对接口编程、而不是针对实现编程

为交互对象之间的松耦合设计而努力

依赖抽象,不依赖具体类

思考:

1.模式是一种场景,和模式具体的实现无关,比如适配器模式与外观模式,虽然他们的实现类似,但是它们是为了解决不同的问题场景而使用的;

2.好的设计应是在不修改原先的基础上增加新的功能,增量开发也是这个道理;

3.运行期间对象关系不会改变的情况可使用继承,否则请使用组合;

1.策略模式:定义算法族,分别封装起来,让它们之间可以相互替换,让算法的变化独立使用算法的客户;

2.观察者模式:使对象之间定义一对多的关系,这样一来, 对象的状态变化,依赖它的对象都能够收到通知,并自动更新;

3.装饰者模式:动态的将责任添加到对象上,而不改变对象原先的使用,虽然继承也可以给对象添加责任,但是如果需要在运行期间添加,这就需要使用装饰者模式了;

4.工厂模式:把生成对象的责任移到工厂类上,如果修改对象的生产,可直接调整工厂类,而不用对使用方进行修改,这里就应用了【封装变化】原则;

简单工厂:对象的创建出现在多个地方,后续可能产生变化, 所以将责任添加到工厂类上,如果有变化就只调整工厂类即可;

工厂方法:定义一个创建对象的接口,由子类决定如何进行实例化,把创建的变化推迟到子类处理;

抽象工厂:和简单工厂类似, 唯一的区别就是抽象工厂创建的是一族产品,而简单工厂创建的是一个产品;

5.单例模式:

上一篇 下一篇

猜你喜欢

热点阅读