/*
桥接模式:将抽象部分与它的实现部分相分离,他们可以独立变化。
合成/聚合复用原则CARP原则:面向对象设计的一个重要原则:
尽量使用合成/聚合,尽量不用使用类的继承
优点:
(1)分离抽象接口及其实现部分。
(2)桥接模式有时类似于多继承方案,但是多继承方案违背了类的单一职责原则
(即一个类只有一个变化的原因),复用性比较差,而且多继承结构中类的
个数非常庞大,桥接模式是比多继承方案更好的解决方法。
(3)桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都
不需要修改原有系统。
(4)实现细节对客户透明,可以对用户隐藏实现细节。
应用举例:
一个画板的形状可以是圆形的,正方形的,颜色可以是红色,绿色,
那要求一个实现一个画板就可以采用桥接模式
Created by Phoenix_FuliMa
*/
#include <iostream>
using namespace std;
class Implementor
{
public:
virtual void Show() {}
};
class Implementor1:public Implementor
{
public:
virtual void Show()
{
cout<<"Implementor1 is showing..."<<endl;
}
};
class Implementor2: public Implementor
{
public:
virtual void Show()
{
cout<<"Implementor2 is showing.."<<endl;
}
};
class Abstractor
{
Implementor *_implementor;
public:
virtual void SetImplementor(Implementor* ot)
{
this->_implementor = ot;
}
virtual void operate()
{
_implementor->Show();
}
};
class RefinedAbstractor:public Abstractor
{
};
int main()
{
Implementor1 * im1 = new Implementor1();
Implementor2 * im2 = new Implementor2();
RefinedAbstractor *re = new RefinedAbstractor();
re->SetImplementor(im1);
re->operate();
re->SetImplementor(im2);
re->operate();
delete im1;
delete im2;
delete re;
system("pause");
return 0;
}
C++实现桥接模式
最新推荐文章于 2024-08-29 00:00:00 发布