#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
//c++ 23种设计模式之桥接者模式
namespace DesignPattern_Bridge
{
//类Implementor
class Implementor
{
public:
virtual void OperationImp()=0;
};
//类ConcreteImplementorA
class ConcreteImplementorA:public Implementor
{
public:
virtual void OperationImp(){
printf("我是实例A\n");
}
};
//类ConcreteImplementorB
class ConcreteImplementorB:public Implementor
{
public:
virtual void OperationImp(){
printf("我是实例B\n");
}
};
//定义类Abstraction
class Abstraction
{
public:
void Operation(Implementor *imp)
{
assert(imp);
imp->OperationImp();
}
};
}
//为了编译其他文件,先注释
void main(){
using namespace DesignPattern_Bridge;//使用命名空间,那么就导入了命名空间中的所有类
Abstraction obj;
Implementor *impa=new ConcreteImplementorA();
Implementor *impb=new ConcreteImplementorB();
obj.Operation(impa);
obj.Operation(impb);
}
c++ 23种设计模式之桥接者模式
最新推荐文章于 2024-10-05 11:36:21 发布