架构师训练营 - 第三周总结
设计模式的定义
每一种设计模式都描述了一种问题的通用解决方案。设计模式可以在对应的场景下将问题拆解简单化,提高可维护性,并可以合理的分工。
一个设计模式分为四个部分
1、模式的名称:有助于表达我们的设计。
2、何时运用对应的设计模式(根据不同的场景上下文)。
3、解决方案:描述了组成设计的元素(类和对象)、它们的关系、职责以及关联,这种解决方案是抽象的,并不太表具体的解决方案。
4、结论:运用这种方案所带来的利与弊,主要指它对系统的弹性、扩展性和移植性的影响。
设计模式的分类
根据其目的(模式是用来做什么的)可分为创建型(Creational),结构型(Structural)和行为型(Behavioral)三种:
• 创建型模式主要用于创建对象。
• 结构型模式主要用于处理类或对象的组合。
• 行为型模式主要用于描述对类或对象怎样交互和怎样分配职责。
根据范围(模式主要是用于处理类之间关系还是处理对象之间的关系)可分为类模式和对象模式两种:
•类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。
•对象模式处理对象间的关系,这些关系在运行时刻变化,更具动态性。
设计模式的案例
适配器模式
适配器模式就是把事物和其具体实现分开,使他们可以各自独立的变化。适配器的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的 JDBC 桥 DriverManager 一样,JDBC 进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是 JDBC 提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来适配就行了。
组合模式
组合模式又叫部分-整体模式,在树型结构中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。
装饰器模式
允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。
模版方法模式
定义流程,并提供扩展点给客户端进行必要的扩展,在框架设计时用来定义方法的流程。
策略模式
多重条件语句不易维护,而使用策略模式可以避免使用多重条件语句。策略模式提供了一系列的可供重用的算法族,恰当使用继承可以把算法族的公共代码转移到父类里面,从而避免重复的代码。策略模式可以提供相同行为的不同实现,客户可以根据不同时间或空间要求选择不同的。策略模式提供了对开闭原则的完美支持
版权声明: 本文为 InfoQ 作者【teslə】的原创文章。
原文链接:【http://xie.infoq.cn/article/c51b76e00ba65e119e272e7f8】。未经作者许可,禁止转载。
评论