0%

门面模式

也叫外观模式,为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,其本质是封装交互,简化调用

对外统一接口

外观模式

核心概念

  • 外观角色 客户端可以调用这个角色的方法,此角色知晓子系统的功能和职责,会将客户端的请求委派到相应的子系统去
阅读全文 »

备忘录模式

在不破坏封装性的前提下,捕捉一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复为原先保存的状态,用于保存和恢复内部状态

核心概念

备忘录模式

  • Memento 备忘录,用于存储原发器对象的内部状态
  • Originator 原发器,使用备忘录来保存某个时刻原发器自身的状态,也可以使用备忘录来恢复内部状态
  • Caretaker 备忘录管理者,负责保存备忘录对象,但是不能对备忘录对象的内容进行操作或检查,并不一定要抽象出一个管理者来,备忘录放在哪里,哪里就是管理者
阅读全文 »

状态模式

允许一个对象在其内部状态改变时允许改变它的行为,根据状态来分离和选择行为

状态变成类

核心概念

状态模式

  • Context 上下文
  • State 状态接口,用来封装与上下文的一个特定状态所对应的行为
  • ConcreteState 具体实现状态处理类
阅读全文 »

观察者模式

定义对象间一种一对多的依赖关系,使得当一个对象改变状态时,所有依赖于它的对象都会得到通知并被自动更新

核心概念

观察者模式

  • Observer 观察者接口 将多个订阅者称为观察者
  • ConcreteObserver 观察者具体实现对象
  • Subject 目标对象 多个观察者观察的对象被称为目标
  • ConcreteSubject 具体的目标实现对象
阅读全文 »

访问者模式

封装一些作用于某种数据结构中的各元素的操作,可以在不改变数据结构的前提下定义作用于这些元素的新的操作,其本质是预留通路,回调实现

数据与操作分离

核心概念

访问者模式

  • Visitor 访问者接口
  • ConcreteVisitor 访问者实现
  • Element 抽象的元素对象
  • ConcreteElement 具体的元素对象
  • ObjectStructure 对象结构,包含多个被访问的对象
阅读全文 »