摘要: 意图 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。public class State { private String value; public String getValue() { return va... 阅读全文
posted @ 2015-12-16 11:30 Iamabc 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。public class Original { private String value; public String getValu... 阅读全文
posted @ 2015-12-16 11:29 Iamabc 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作public interface Command { public void exe(); } public class MyCommand implements ... 阅读全文
posted @ 2015-12-16 11:27 Iamabc 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。public interface Handler { public void operator(); } public abstra... 阅读全文
posted @ 2015-12-16 11:24 Iamabc 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 意图 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。public interface Collection { public Iterator iterator(); /*取得集合元素*/ public Objec... 阅读全文
posted @ 2015-12-16 11:22 Iamabc 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。public interface Observer { public void update(); } public class Observer1 implements... 阅读全文
posted @ 2015-12-16 11:18 Iamabc 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 意图 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 就是指:一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过... 阅读全文
posted @ 2015-12-16 11:07 Iamabc 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 意图 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 策略模式多用在算法决策系统中,外部用户只需要决定用哪个算法即可。public interface ICalculator { public int calculate(St... 阅读全文
posted @ 2015-12-04 10:29 Iamabc 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 意图 运用共享技术有效地支持大量细粒度的对象。 主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。public class ConnectionPool { private Vector pool; /... 阅读全文
posted @ 2015-12-03 15:50 Iamabc 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 意图 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite 使得用户对单个对象和组合对象的使用具有一致性。public class TreeNode { private String name; private TreeNode parent; ... 阅读全文
posted @ 2015-12-03 15:34 Iamabc 阅读(130) 评论(0) 推荐(0) 编辑