设计模式 桥接模式(Bridge Pattern)

Bridge

  • 目的
  • 结构
  • 应用
  • 结论
  • 源码

目的

  • 从实现中分离出抽象,因此这两个可以独立改变。.

结构

 设计模式 桥接模式(Bridge Pattern)_第1张图片

  • Abstraction : 定义一个抽象接口.
  • RefinedAbstraction : 扩展抽象定义的接口.
  • Implementor : 定义一个实现接口类.
  • ConcreteImplementor : 实现实现接口类定义的接口.

应用

  • 你想避免抽象及其实现之间的永久绑定,这是一个例子,当在运行时实现必须选择或交换。
  • 抽象和其实现应该是可扩展的子类,在这种情况下,桥接模式可以结合不同的抽象和实现和独立地扩展他们。
  • 实现一个抽象的变化应该对客户端没有影响;也就是客户端的代码不需要重新编译。
  • 你需要完全从客户端隐藏抽象的实现方法。在c++中代表只是显示接口的类。
  • 你想在多个对象中共享实现,这就需要从客户端中隐藏。

结论

  • 分离接口和实现。
  • 提高可扩展性。
  • 从客户端中隐藏实现细节。

源码

class Implementor {
public:
    void OperationImp();

};


class ConcreteImplementor : public Implementor {
};


#include "Implementor.h"

class Abstraction {
public:
    void Operation();
    Implementor *imp;
};


#include "Abstraction.h"

class RefinedAbstraction : public Abstraction {
};



你可能感兴趣的:(设计模式)