10 2017 档案
摘要:1.描述 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可以将对象恢复到原先保存的状态。 2.模式的使用 ·原发者(Originator):需要在某个时刻保存状态的对象。 ·备忘录(Memento):负责存储原发者状态的对象,创建备忘录的类和创建原发者的类在同一个
阅读全文
摘要:1.描述 表示一个作用于某对象结构中的各个元素的操作。它可以在不改变各个元素类的前提下定义作用于这些元素的新操作。 2.模式的使用 ·抽象元素(Element):一个抽象类,该类定义了接受访问者的accept()操作。 ·具体元素(Concrete Element):Element的子类。 ·对象结
阅读全文
摘要:1.描述 运用共享技术有效的支持大量细粒度的对象。 2.模式的使用 ·享元接口(Flyweight):是一个接口,该接口定义了享元对外公开其内部数据的方法以及享元接受外部数据的方法。 ·具体享元(Concrete Flyweight):实现享元接口的类的实例。享元类的构造方法必须是private的,
阅读全文
摘要:1.描述 为其他对象提供一种代理以控制对这个对象的访问。 2.模式的使用 ·抽象主题(Subject):抽象主题是一个接口,该接口是对象和他的代理所共用的接口,即是RealSubject和Proxy实例所实现的接口。 ·实际主题(RealSubject):实际主题是实现抽象主题接口的类。实际主题的实
阅读全文
摘要:1.描述 定义一个操作中算法的骨架,而将一些步骤延伸到子类当中。模板方法使子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2.模式的使用 ·抽象模板(Abstract Template):抽象模板是一个抽象类。抽象模板定义若干方法表示一个算法的各个步骤,这些算法中有抽象方法也有非抽象方
阅读全文
摘要:1.描述 允许一个对象在其内部状态改变时改变他的行为,对象看起来似乎修改了他的类。 2.模式的使用 ·环境(Context):环境是一个类,该类含有抽象状态(State)的声明,可以引用任何具体状态类的实例。用户对该环境(Context)类的实例在某种状态下的行为感兴趣。 ·抽象状态(State):
阅读全文
摘要:1.描述 将桥接部分与他的实现部分分离,是他们都可以独立的变化。 2.模式的使用 ·抽象(Abstraction):是一个抽象类,该抽象类含有Implementor的声明,即维护一个Implementor类型对象。 ·实现者(Implementor):实现者是一个接口或抽象类,该接口(抽象类)中的方
阅读全文
摘要:1.描述 将对象组合成树形结构一以表示“部分——整体”的层次结构。组合模式使用户对单个对象和组合对象的使用具有一致性。 2.模式的使用 ·抽象组件(Component):是一个接口或抽象类,该接口定义了个体对象和组合对象需要实现的关于操作器子节点的方法,比如添加add()、删除remove()、等方
阅读全文
摘要:1.描述 保证一个类仅有一个实例,并提供一个访问他的全局访问点。 2.模式的使用 ·在JVM加载单件类时创建他的唯一实例。 ·在单件类提供的类方法中创建这个唯一实例。 3.使用情景 ·当系统需要某个类只能有一个类。 4.优点 ·单件类唯一实例由单件类本身控制,便于控制用户访问。 5.UML图 没有
阅读全文
摘要:1.描述 用原型实例制定创建对象的种类,并且通过复制这些原型创建的对象。 2.模式的使用 ·抽象原型(Prototype):一个接口。负责定义对象复制自身的方法。 ·具体原型(ConcretePrototype):实现Prototype接口的类。具体原型实现抽象原型中的方法,以便所创建的对象调用该方
阅读全文
摘要:1.描述 将一组复杂对象的构建与他的表示相分离,使同样的构建过程可以创建不同的表示。 2.模式的使用 ·产品(Product):具体生成器要构造的复杂对象。 ·抽象生成器(Builder):一个接口,该接口除了为创建一个Product对象的各个组件定义了若干方法外,还要定义返回Product对象的方
阅读全文
摘要:1.描述 提供一个一系列或相互依赖对象的接口,而无需指定他们具体的类。 2.模式的使用 ·抽象产品(Product):一个抽象类或接口,负责定义具体产品必须实现的方法。 ·具体产品(ConcreteProduct):具体产品是一个类,实现或继承抽象产品。 ·抽象工厂(AbstractFactory)
阅读全文