桥接模式

桥接模式

将抽象部分与它的实现部分分离,使它们可以独立地变化。

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

‘将抽象部分与它的实现部分分离’:实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。

示例代码
//桥接模式
//实现的抽象接口  
class Implementor
{
public:
    virtual void Operation() = 0;
};
//具体实现类A
class ConcreteImplementorA:public Implementor
{
public:
    void Operation(){ cout << "具体实现A的方法执行" << endl; }
};
//具体实现类B
class ConcrtetImplementorB :public Implementor
{
public:
    void Operation(){ cout << "具体实现B的方法执行" << endl; }
};
//抽象类
class Abstraction
{
public:
    void SetImplementor(Implementor *implementor){ m_implementor = implementor; }
    virtual void Operation(){ m_implementor->Operation(); }
protected:
    Implementor *m_implementor;
};

class RefindAbstraction :public Abstraction
{
public:
    void Operation(){ m_implementor->Operation(); }
};

int main()
{
    Abstraction *ab = new RefindAbstraction;
    ab->SetImplementor(new ConcreteImplementorA);
    ab->Operation();

    ab->SetImplementor(new ConcrtetImplementorB);
    ab->Operation();

    system("pause");
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值