初学设计模式之模板模式、策略模式、桥接模式

现在要完成领域模型与实际模型的匹配,发现各个系统架构师推翻原来的代码一定要进行重构,其实是有很多原因的,最主要的就是目前的代码确实已经有很大的坏味道了。
今天看了一篇关于重构的文章,主要介绍了在重构中使用的三种模式,主要是为了减少不同版本中标志位来用的,在这里做个总结:


模板模式:在父类中定义主方法,在继承的子类中实现差异处理。主要分为抽象类和具体类。
抽象类:定义需要具体类实现的一些抽象方法,这些方法是一个完整的操作中的基本步骤,在抽象类中,一般还会实现一个模板方法,该方法定义了整个操作的框架,即按特定流程调用每个基本步骤,以实现整个操作。
具体类:是抽象类的派生类,实现抽象类定义的抽象方法,以便在整个操作流程中融入自己的行为。


策略模式:定义一组算法,把每一个算法都封装进一个特定的类中,每个类有不同的内部结构和不同的行为。同时,这些算法有一个共同的抽象类作为算法的接口。分为策略类、具体策略类、上下文类。
策略类:该类定义了所有算法的公关接口,上下文类通过这些接口来调用具体的策略类。
具体的策略类:根据策略接口的定义,实现某种特定的算法;
上下文类:通过维护策略对象的一个指针,来管理当前使用的具体策略。
同模板模式不同,策略模式用聚合替代了继承,上下文类还可以在运行时动态改变策略。

桥接模式:将抽象部分与他的实现部分分离开来,是他们都可以独立地发生变化。是对于某一概念剥离了实现上的不同点的抽象。分为抽象接口、具体的抽象类、实现接口、具体的实现类。
抽象接口:定义抽象类的接口,维护一个指向实现接口的指针或引用。抽象接口负责把客户的请求转发给它引用的实现对象。
具体的抽象类:扩充由抽象接口定义的接口
实现接口:定义实现类的接口,该接口不需要和抽象类的接口保持一致。一般来讲实现接口仅提供原子操作,而抽象接口则定义了构建在这些基本操作上的更高级操作。
具体的实现类:具体实现接口的部分。

你可能感兴趣的:(设计模式)