摘要: 序言 责任链模式里有很多对象会有共同的行为方法,其中每一个对象对其下家的引用而连接起来会形成形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。 责任链有如下几 阅读全文
posted @ 2017-08-19 23:40 吃不了兜着走 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 序言 模板方法模式通过把不变的行为搬移到父类(抽象类),去除了子类中的重复代码;对于不同的子类有不同实现的行为,在父类中声明一些抽象方法来迫使子类实现剩余的逻辑,提高程序的扩展性。 策略模式有如下几种角色: 抽象策略角色:接口或者抽象类 具体策略角色:类,策略的具体实现方法 环境角色:类,持有一个S 阅读全文
posted @ 2017-08-19 16:11 吃不了兜着走 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 序言 命令模式把发出命令的责任和执行命令的责任分隔开,分别委托给不同的对象。 每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。 命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否 阅读全文
posted @ 2017-08-19 10:07 吃不了兜着走 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 序言 模板方法模式通过把不变的行为搬移到父类(抽象类),去除了子类中的重复代码;对于不同的子类有不同实现的行为,在父类中声明一些抽象方法来迫使子类实现剩余的逻辑,提高程序的扩展性。 模板方法有如下几种角色: 抽象模板角色:抽象类,该类包含以下几类方法: 1. 模板方法:final类型的具体方法,给出 阅读全文
posted @ 2017-08-17 20:39 吃不了兜着走 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 序言 门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面对象进行,避免了客户端与子系统内部的很多对象打交道。 家作为1个子系统,内部有灯,厨房,卧室,主人每次忙起来的时候,都要和他们打交道,为了方便,主人雇了一个保姆(门面)专门做这些事情,对于什么时候做饭,做什么饭,每次都要由主 阅读全文
posted @ 2017-08-17 11:48 吃不了兜着走 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 序言 适配器模式有3种类型,分别是类的适配器模式,对象的适配器模式,缺省的适配器模式,下面分别介绍。 适配器模式的几种角色: 源角色:类,需要适配的对象 目标角色:接口或抽象类,包括了需要适配的原有接口和新接口 适配器角色:类,通过继承或者委托的方式,实现新旧接口的转化 1. 类的适配器模式 类的适 阅读全文
posted @ 2017-08-16 23:41 吃不了兜着走 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 序言 装饰者模式能够在不使用创造子类的情况下,将对象的功能加以扩展,如果要撤销功能的话,也比较方便。 在装饰者模式中,含有的角色: 抽象构件角色 :接口或者抽象类,给出了需要装饰的接口。 具体构件角色 :类,包含了被装饰者所有的功能。 装饰角色 :类,持有抽象构建角色的委托实例,并实现了抽象构件角色 阅读全文
posted @ 2017-08-10 16:24 吃不了兜着走 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 序言 代理模式可以实现对被代理对象的间接控制,可以对被代理对象的方法进行增强,她不重写原有的方法。 代理模式基本分为3类: 1. jdk静态代理: 1个代理类只能代理1个类,局限性较大。 2. jdk动态代理: 1个代理类能代理多个类,要求被代理类必须要有接口,利用了反射,效率比较低。 3. cgl 阅读全文
posted @ 2017-08-10 16:19 吃不了兜着走 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 序言 原型模式根据原型对象可以创建出完全一模一样的相同对象。 原型模式基本分为2类: 1. 简单式原型模式:适用原型对象数目较少且比较固定;创建后直接被客户端使用 2. 登记式原型模式:适用创建的原型对象数目不固定;复制对象前,先从容器中查找是否已经克隆,没有的话直接复制,并放入,有的话直接从容器中 阅读全文
posted @ 2017-08-09 17:57 吃不了兜着走 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 序言 建造者模式可以使客户端不需要知道产品有哪些组件,各组件是怎么生产的,最后是怎么装配组合的,只可以使程序更简洁,灵活。 抽象建造者:包括组件构造方法和产品返回方法;产品有多少零件,就有多少build方法。 具体建造者:实现产品组件的build方法 导演者:提供产品的组合方法 产品:具体类,包含组 阅读全文
posted @ 2017-08-08 22:55 吃不了兜着走 阅读(125) 评论(0) 推荐(0) 编辑