摘要: 一.中介者设计模式介绍 中介者模式定义了一个中介对象来封装一系列对象之间的交互关系。中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低,而且可以独立地改变它们之间的交互行为。例如构建一个群聊应用,如果没有中介者,每个用户向其他用户发送消息时都要与其他用户直接联系(显示引用),并且当新添加一个 阅读全文
posted @ 2019-01-13 22:20 曲项向天歌 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 一.模板方法模式介绍 模板方法模式中规定了完成一个任务的各个工序的执行顺序,同时对某些通用的基础工序提供了默认的实现。比如给定一个造房子的任务,完成这个任务的工序可以分解为打地基buildFoundation(),建柱子buildPillars(),建墙buildWalls(),装窗户buildWi 阅读全文
posted @ 2019-01-11 15:53 曲项向天歌 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 一.装饰器模式要解决的问题 装饰器模式是为了给处于运行时的对象添加某些功能。 通常扩展一个类的功能是通过继承或实现接口,这样在编译期该类的所有实例(对象)都具有扩展的功能,但是在运行期若为该类的某个对象添加某个功能则需用到装饰器模式。 二.装饰器模式用例(Java) 假设要生产汽车,我们可定义一个C 阅读全文
posted @ 2019-01-10 16:15 曲项向天歌 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 一.桥接模式要解决的问题 桥接模式的作用将接口与实现分离。 二.桥接设计模式用例(Java) 假设有一个接口继承层次图如下: 将其改为桥接模式类图如下: 其中Shape和Color接口使用组合关系,附Java代码如下: 三.桥接设计模式使用场景 当抽象接口和实现类之间有独立的继承(或实现)层次并且要 阅读全文
posted @ 2019-01-10 14:55 曲项向天歌 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 一.外观设计模式所解决的问题 外观设计模式为子系统中的一组接口提供统一的接口,这种统一的接口屏蔽了直接调用子系统时的逻辑关系,使得调用子系统时更容易。 二.外观设计模式用例 假如一个应用中有两个接口MysqlHelper.class和OracleHelper.class,两个接口功能分别是连接mys 阅读全文
posted @ 2019-01-09 22:37 曲项向天歌 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 一.享元设计模式要解决的问题 享元设计模式是一种结构设计模式,当我们要创建同一个类的大量对象时,可以考虑享元设计模式。由于每一个对象都会消耗内存空间,享元设计模式通过共享对象达到降低内存消耗。 二.享元设计模式的要点 1.需要创建的对象数量特别巨大。 2.对象创建占用内存大且耗时。 3.对象属性可以 阅读全文
posted @ 2019-01-08 21:24 曲项向天歌 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 一.代理设计模式要解决的问题 当需要设计控制访问权限功能时可以考虑代理设计模式。设想我们有一个执行系统命令的类,当我们自己用这个类时能够放心的使用,但当把这个类给客户端程序使用时就产生了一个严重问题,因为这个客户端程序可能通过这个类删除了系统文件或者更改某些系统配置,这个是我们不愿意看到的。 二.代 阅读全文
posted @ 2019-01-07 21:17 曲项向天歌 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 一.组合设计模式要解决的问题 组合设计模式也是一种结构设计模式,当在一个结构设计中,当所有的对象被当做同一种方式操作时,应该考虑选择组合设计模式。 二.组合设计模式的要点 三.组合设计模式代码用例 下面通过画一个图表的例子来说明:画图时我们可以选择画三角形、圆形、直线等,当我们在画板中选中一种颜色时 阅读全文
posted @ 2019-01-07 15:12 曲项向天歌 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 一.适配器模式要解决的问题 适配器模式属于结构设计模式,我们把将两个不相关的接口做一个适配以使二者进行交互的接口成为适配器。比如充电器就是一个适配器,正常电源是120V,手机电池输入电压是3V,电瓶车电池输入电压为20V,空调输入电压为120V,通过适配器适配,可以将120V电源转换为3V、20V、 阅读全文
posted @ 2019-01-05 10:57 曲项向天歌 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 一.原型设计模式要解决的问题 当创建一个对象需要大量的时间和资源时,这时如果已经存在一个类似的对象,我们就应该考虑原型设计模式。原型设计模式通过拷贝一份已经存在的对象并根据自己的需要来修改该对象,该模式要求复制的对象本身需要有复制特性,它不应该被其他类去复制。java中的原型设计模式通过克隆来实现, 阅读全文
posted @ 2019-01-03 22:51 曲项向天歌 阅读(144) 评论(0) 推荐(0) 编辑