摘要: 把数据结构和数据操作分离 类图 (图:wiki) 示例 public interface ComputerPart { void accept(Visitor computerVisitor); } public class KeyBoard implements ComputerPart { @O 阅读全文
posted @ 2020-02-28 22:08 Camcay 阅读(103) 评论(0) 推荐(0)
摘要: 通过复制已存在的对象获取新的实例,被复制的对象称为“原型”。 应用场景 用于创建复杂的或者耗时的实例 创建值相等,只是命名不一样的同类数据 类图和示例(来源:wiki) public class Cookie implements Cloneable{ @Override protected Obj 阅读全文
posted @ 2020-02-28 21:40 Camcay 阅读(75) 评论(0) 推荐(0)
摘要: 需要让保存对象之前的状态,在必要时回退可以使用备忘录模式 (图:wiki) 示例 //备忘录 public class Memento { private String state; public Memento(String state){ this.state = state; } public 阅读全文
posted @ 2020-02-28 20:58 Camcay 阅读(99) 评论(0) 推荐(0)
摘要: 使用一个中介管理相关对象之间的交互 类图 示例(中介者模式来模拟用户之间的聊天) public abstract class User { private IChatRoom chartroom; private String userId; private String userName; pub 阅读全文
posted @ 2020-02-28 20:19 Camcay 阅读(95) 评论(0) 推荐(0)
摘要: 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子 实例(简易加减法解释器,单个数字不大于10) public interface Expression { int operation(); } //解释数字 public class VarExpress 阅读全文
posted @ 2020-02-28 17:37 Camcay 阅读(158) 评论(0) 推荐(0)
摘要: 让某个类的一个示例能用来提供多个“虚拟实例” 类图 (来源:wiki) 示例 public class Tree { private String color; public Tree(String color){ this.color =color; } @Override public Stri 阅读全文
posted @ 2020-02-28 15:20 Camcay 阅读(92) 评论(0) 推荐(0)
摘要: 为某个请求创建一个对象链。每个对象依次序检查次请求,并对其处理或者传递给对象链中的下一个对象。 类图 (图来自wiki) 示例 public class Request { private int num; public Request(int num){ this.num=num; } publi 阅读全文
posted @ 2020-02-28 14:40 Camcay 阅读(104) 评论(0) 推荐(0)
摘要: 封装一个产品的构造过程,并允许按步骤构造 类图 (图来自wiki) 示例 public class Product { private String name; private String descripe; public void setDescripe(String descripe) { t 阅读全文
posted @ 2020-02-28 13:50 Camcay 阅读(100) 评论(0) 推荐(0)
摘要: 把抽象和实现解耦,使二者可以独立变化 类图 (图来自wiki) abstraction(抽象的层次),implementor(实现的层次) 抽象的层次通过持有实现的层次,实现类之间的桥接 两个层次之间可以独立扩展而不会影响对方。 示例 public interface EndPlace { void 阅读全文
posted @ 2020-02-28 11:45 Camcay 阅读(135) 评论(0) 推荐(0)
摘要: 定义:为另一个对象提供一个替身或者占位符,以控制对这个对象的访问。 代理模式和装饰者模式 装饰者模式是为对象附加新的行为 代理模式是让访问者通过代理类访问对象,从而可以在代理类中添加对对象访问的控制。 类图 示例 //Subject public interface Actor { void vis 阅读全文
posted @ 2020-02-27 21:34 Camcay 阅读(143) 评论(0) 推荐(0)