命令模式 636 次访问 2019-07-06 命令模式将一个请求封装成一个对象,解耦调用操作的对象与接收命令的对象,该模式可以支持请求排队并方便的记录请求日志,以及支持可撤销的操作 结构 参与者 Command(具体执行操作都必须实现的接口) 命令对象实现这个接口 调用接受者响应的操作,以实现execute方法 Client(发起 Read More
装饰模式 229 次访问 2019-05-22 装饰模式动态地给一个对象添加一些额外的职责。单从增加功能的角度来说,装饰模式相比生成子类更为灵活 结构 参与者 Component(可动态添加职责的对象接口) — 装饰器和被装饰对象都需要实现这个接口 ConcreteComponent(被添加职责的具体对象) — 被添加职责的方法主要是C Read More
观察者模式 238 次访问 2019-03-27 观察者模式定义了对象间的一种一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 结构 参与者 Subject(目标) — 目标知道它的观察者。可以有任意多个观察者观察同一个目标 — 提供注册和删除观察者对象的接口 Observer(观察者) — 为那些在 Read More
模板方法模式 219 次访问 2019-02-17 模板方法模式定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤 结构 参与者 AbstractClass(抽象类) — 定义抽象的原语操作,具体的子类将重定义它们以实现一个算法的各步骤 ConcreteClass(具体类) — Read More
策略模式 232 次访问 2019-01-26 策略模式定义了算法簇,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于它的使用者而变化 结构 参与者 Strategy(策略) 定义所有支持算法的公共接口 ConcreteStrategy(具体策略) 实现Strategy接口中的具体算法 Context(上下文 Read More