摘要:
访问者模式 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 数据操作与数据结构分离的设计模式。是 23 种设计模式中比较复杂的一个,使用频率不高但是一旦需要使用,就是迫切的需要。 类结构图 Vistior 是一个接口定义了每一个元素(Ele 阅读全文
摘要:
解释器模式 定义一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 类结构图 Context 包含解释之外的一些全局信息。 AbstractExpression 声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。 TerminalExpress 阅读全文
摘要:
享元模式 运用共享技术有效的支持大量细粒度的对象。 类结构图 FlyweightFactory 一个享元类,用来创建并管理 Flyweight 对象。它主要是用来确保合理地共享 Flyweight,当用户请求一个 Flyweight 时,FlyweightFactory 对象提供一个已创建的实例。 阅读全文
摘要:
中介者模式 用一个中介对象来封装一系列的对象的交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 类结构图 Mediator 抽象中介者,定义了同事对象到中介者对象的接口。 ConcreteMediator 具体的中介者对象,实现抽象类的方法,它需要知道所 阅读全文
摘要:
责任链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 类结构图 Handler 定义一个处理请示的接口。 ConcreteHandlerA、ConcreteHandlerB 具体的处理类,处理它所 阅读全文
摘要:
命令模式 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。 类结构图 Invoker 要求该命令执行这个请求。 Command 用来声明执行命令的接口。 ConcreteCommand 将一个接收者对象绑定于一个动作,调用接收者相应的操作,以实现 Execute。 Receiver 阅读全文
摘要:
桥接模式 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?这就要使用桥接模式。而具体使用的方式,则是将抽象部分与他们的实现部分分离,使得它们都可以独立的变化。 什么才是抽象部分与它的实现分离呢,并不是说将抽象类和实现类分离。实现指的是抽象类和它的实 阅读全文
摘要:
单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 类结构图 单例模式有两种实现方式:恶汉式、懒汉式。 饿汉式代码示例 public class Singleton { private static final Singleton SINGLETON = new Singleton() 阅读全文
摘要:
BeanFactory BeanFactory 是 Spring IoC 容器的具体实现,是 Spring 容器的核心接口。 DefaultListableBeanFactory XmlBeanFactory 继承自 DefaultListableBeanFactory 而 DefaultLista 阅读全文
摘要:
迭代器模式 提供一种方法顺序访问到一个聚合对象中的各个元素,而又不暴露该对象的内部表示。 类结构图 Aggregate 聚集抽象类。 ConcreteAggregate 具体的聚集类,继承 Aggregate。 Iterator 迭代抽象类,用于定义得到开始对象、得到下一个对象、判断是否到结尾、当前 阅读全文