手机软件统一 X 桥接模式 X 抽象与实现分离

       桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。

       什么叫做抽象与它的实现分离,这并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象[1]

       在《设计模式解析》一书的读书笔记中,对这个模式有更详细的解释。

 

  1. class Implementor
  2. {
  3. public:
  4.     //提供一个接口即可
  5.     virtual void Operation()=0;
  6. };
  7. class ConcreteImplementor : public Implementor
  8. {
  9. public:
  10.     virtual void Operation()
  11.     {
  12.         //do something here;
  13.         //具体的实现代码
  14.     }
  15. };
  16. class Abstraction
  17. {
  18.     //声明为protected类型,能够让子类使用这个成员
  19. protected:
  20.     Implementor* pImpl;
  21. public:
  22.     void setImplementor(Implementor* aImpl)
  23.     {
  24.         pImpl = aImpl;
  25.     }
  26.     virtual void ImplementOperation()
  27.     {
  28.         pImpl->Operation();
  29.     };
  30. };
  31. class RefinedAbstraction : public Abstraction
  32. {
  33. public:
  34.     virtual void ImplementOperation()
  35.     {
  36.         pImpl->Operation();
  37.     }
  38. };
  39. void main()
  40. {
  41.     Abstraction* pab = new RefinedAbstraction();
  42.     pab->setImplementor(new ConcreteImplementor());
  43.     pab->ImplementOperation();
  44. };

    实际动手编写以上的代码,才发现自己生疏了不少。(默写的时候出现问题呢)



[1] 看模式的结构图,就一目了然了:所谓的“桥”,在图形上最能体现特色的就是上面的两个抽象类之间的一条连接线:聚合关系(空心菱形加实线箭头)。因为在Abstraction类中,有一个成员是ImplementorImplementor对象的功能在Abstraction类中要调用到)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值