设计模式 - 状态模式(State pattern)
定义 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。 类型 对象行为模式 结构 命令模式由记下几部分组成: 上下文(Context): 定义客户感兴趣的接口,维护一个 ConcreteState 子类的实例,这个实例定义当前状态; 抽象状态(Sta...
定义 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。 类型 对象行为模式 结构 命令模式由记下几部分组成: 上下文(Context): 定义客户感兴趣的接口,维护一个 ConcreteState 子类的实例,这个实例定义当前状态; 抽象状态(Sta...
定义 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 类型 对象行为模式 结构 命令模式由以下几部分组成: 抽象命令类(Command): 声明执行操作的接口。调用接收者相应的操作,以实现执行的方法 Execu...
定义 使多个对象有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 类型 对象行为模式 结构 责任链模式由以下几部分组成: 抽象处理者(Handler): 定义一个请求的接口。如果需要可以定义个一...
定义 提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。 类型 对象行为模式 适用性 以下情况适用迭代器模式: 访问一个聚合对象的内容而无需暴露它的内部表示; 支持对聚合对象的多种遍历; 为遍历不同的聚合结构提供一个统一的接口(即支持多态迭代) ...
定义 定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。 类型 对象行为模式 结构 观察者模式由以下几部分组成: 目标(Subject): 定义观察者需要实现的职责,提供注册和删除观察者对象的接口。通常被实现为抽象类,仅完成作...
定义 定义一些操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 类型 对象行为模式 结构 模板方法由以下两部分组成: 抽象类(AbstractClass): 定义抽象的原语操作。它的方法包括两类: ...
定义 定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。策略模式使得算法可以独立于使用它的客户而变化。 类型 对象行为模式 结构 策略模式由以下部分组成: 抽象策略(Strategy): 定义每个策略或算法所必须具备的公共属性的接口,Context 使用此...
定义 运用共享技术有效的支持大量细粒度对象。 类型 结构型模式 结构 内部状态与外部状态 享元模式为了解决对象数量多且性质相近的问题,将对象信息分为内部对象和外部对象两个部分: 内部状态(intrinsic): 指对象可共享出来的信息,存储在享元对象内部并且不会随环境改变而改变...
定义 将对象组合成树形结构以表示”整体-部分”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 类型 结构型模式 结构 组合模式由以下几部分组成: 抽象组件(Component): 可以是接口或抽象类,为叶子组件 (Leaf) 和容器组件 (Composite) 声...
定义 将抽象部分与实现部分分离,使它们都可以独立的变化。 类型 结构型模式 结构 桥接模式由以下部分组成: 抽象类(Abstraction): 定义抽象类的接口,维护一个指向实现类接口的指针。 扩展抽象类(RefinedAbstraction): 扩充由 Abstraction 定义...