摘要: 定义: -- 将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象场景: -- 打牌时,轮流出牌 -- 接力赛跑 -- 大学中,奖学金审批以公司中请假条的审批为例:代码:package com.l... 阅读全文
posted @ 2015-04-19 23:01 李_鹏 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 场景: -- 内存属于稀缺资源,不要随便浪费。如果有很多个完全相同或相似的对象,我们可以通过享元模式,节省内存。核心: -- 享元模式以共享的方式高效地支持大量细粒度对象的重用。 -- 享元对象能做到共享的关键是区分了内部状态和外部状态。内部状态:可以共享,不会随环境变化而改变外部状态:不可以... 阅读全文
posted @ 2015-04-19 20:56 李_鹏 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 迪米特法则(最少知识原则): 一个软件实体应当尽可能少的与其他实体发生相互作用。外观模式核心: -- 为子系统提供统一的入口,封装子系统的复杂性,便于客户端调用。以办理公司为例:package com.lp.facade;public interface 工商局 { void checkN... 阅读全文
posted @ 2015-04-16 23:47 李_鹏 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 职责: -- 动态的为一个对象增加新的功能 -- 装饰模式是一种用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀实现细节: -- Component抽象构件角色 真实对象和装饰对象有相同的接口。这样,客户端... 阅读全文
posted @ 2015-04-15 19:44 李_鹏 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 使用组合模式的场景; -- 把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象。核心: -- 抽象构件(Component)角色:定义了叶子和容器构件的共同点 -- 叶子(Leaf)构件角色:无子节点 -- 容器(Composite)构件角色: 有容器特... 阅读全文
posted @ 2015-04-15 16:51 李_鹏 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 场景: -- 商场系统中常见的商品分类,以电脑为类,如何出来好商品分类销售的问题?如图:我们该如何实现上图的关系?1:我们可以用多层继承接口实现2:桥接模式实现使用第一种的问题:扩展性问题(类个数膨胀问题): 如果要增加一个新的电脑类型智能手机,则要增加各个品牌下面的类 如果要增加一个... 阅读全文
posted @ 2015-04-14 21:03 李_鹏 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 核心作用: -- 通过代理,控制对对象的访问 可以详细控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理(即:AOP的微观实现!) -- AOP(Aspect Oriented Programming面向切面编程)的核心实现机制!核心角色:抽象角色: ... 阅读全文
posted @ 2015-04-14 14:12 李_鹏 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 结构型模式:--- 核心作用:是从程序的结构上实现松耦合,从而可以扩大整体的类结构,用来解决更大的问题--- 分类: 适配器模式,代理模式,桥接模式,装饰模式,组合模式,外观模式,享元模式适配器模式:原理:-- 将一个类接口转换成客户希望的另外一个接口。优点:Adapter模式使得原本由于接口不兼... 阅读全文
posted @ 2015-04-13 23:29 李_鹏 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 使用场景-- 通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式-- 就是java中的克隆技术,以某个对象为原型复制出新的对象 ,显然,新的对象具备原型对象的特点优势:效率高(直接克隆,避免了重新执行构造的过程步骤)。克隆类似于new,但是不同于new。new创建新的对象属性... 阅读全文
posted @ 2015-04-13 22:26 李_鹏 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 核心本质: 分离了对象子组件的单独构造(由Builder来负责)和装配(由Director负责)。从而可以构造出复杂的对象。使用性: 某个对象的构建过程复杂的情况下特点:由于实现了构造和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。... 阅读全文
posted @ 2015-04-12 22:03 李_鹏 阅读(155) 评论(0) 推荐(0) 编辑