桥接模式
将抽象部分与它的实现部分分离,使它们都可以独立地变化
本文讲解桥接模式框架,代码使用C++语言描述,代码存在的不足或问题有望各位指出。
桥接模式代码框架
//桥接模式
#include <iostream>
using namespace std;
class Implementor
{
public:
virtual ~Implementor(){}
virtual void Operation() =0;
protected:
Implementor(){}
};
class ConcreteImplementorA: public Implementor
{
public:
ConcreteImplementorA(){}
~ConcreteImplementorA(){}
void Operation() override
{
cout << "具体实现A的方法执行" << endl;
}
};
class ConcreteImplementorB: public Implementor
{
public:
ConcreteImplementorB(){}
~ConcreteImplementorB(){}
void Operation() override
{
cout << "具体实现B的方法执行"<<endl;
}
};
class Abstraction
{
public:
virtual ~Abstraction(){}
void setImplementor(Implementor *implementor)
{
this->implementor = implementor;
}
virtual void Operation()
{
implementor->Operation();
}
protected:
Implementor *implementor;
Abstraction(){}
};
class RefinedAbstraction : public Abstraction
{
public:
void Operation() override
{
implementor->Operation();
}
};
int main()
{
Abstraction *ab =new RefinedAbstraction();
ab->setImplementor(new ConcreteImplementorA());
ab->Operation();
ab->setImplementor(new ConcreteImplementorB());
ab->Operation();
delete ab;
return 0;
}
桥接模式优点
1、实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。
2、只要真正深入地理解了设计原则,很多设计模式其实就是原则的应用而已,或许在不知不觉中就在使用设计模式了。