摘要:
中介者模式(Mediator)定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。 中介者模式的优点有: 1、降低了对象之间的耦合性,使得对象易于独立地被复用。 2、将对象间的一对多关联转变为一 阅读全文
摘要:
直观对比一下两种设计模式,左图:观察者模式;右图:策略模式。可以看到观察者模式的“下部分”就是策略模式。 观察者模式(Observer)定义:指多个对象间存在一对多的依赖关系(主题是“一”,观察者是“多”),当一个(主题)对象的状态发生改变时,所有依赖于它的(观察者)对象都得到通知并被自动更新。这种 阅读全文
摘要:
首先直观对比一下两种模式,左图:状态模式;右图:策略模式。可以看出,状态模式是在策略模式的基础上,增加了状态类对环境类的“反向调用”。 状态模式(State)定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 状态模式的优点有: 1、状态 阅读全文
摘要:
责任链模式(ChainOfResponsibility)定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。 责任链模式的优点有: 1、降低了对象之间的耦合度。该模式使得一 阅读全文
摘要:
命令模式与策略模式的UML类图比较接近,先直观的对比一下。左图:命令模式,右图:策略模式。 可以看出,命令模式的“上部分”就是策略模式,是在策略模式的基础上,增加了receiver类型。 命令模式(Command)定义:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通 阅读全文
摘要:
模板方法模式(TemplateMethod)定义:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。 模板方法模式的优点有: 1、它封装了不变部分,扩展可变部分。它把认为是不变部分的算法封装到父类中实现,而 阅读全文
摘要:
策略模式(Strategy)定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。 策略模式的优点: 1、多重条件语句不易 阅读全文
摘要:
组合模式定义:组合模式又叫作“部分-整体”模式,它是一种将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系。使用户对单个对象和组合对象具有一致的访问性。 如图左边是:组合模式;右边是:装饰者模式。 可见组合模式就是装饰者模式的上半部分。 组合模式的优点有: 1、组合模式使得客户端代码可以 阅读全文
摘要:
享元模式定义:运用共享技术来有効地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。享元可以理解为“共享元件”。 享元模式的主要优点是: 相同对象只要保存一份,这降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带 阅读全文
摘要:
外观模式(Facade)定义:是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。 外观模式的优点有: 1、降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。 2、对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易。 阅读全文