设计模式

bridge模式

2017-11-20  本文已影响0人  老练子丶2017

写法跟其他模式类型,就因为理解的含义不同?

一个继承抽象基类,一个继承实现基类,抽象类里面有个实现类的指针

bridge.h

#ifndef _BRIDGE_H

#define _BRIDGE_H

#include <iostream>

using namespace std;

class AbstractionImp

{

public:

virtual ~AbstractionImp() {}

virtual void Operation()=0;

protected:

AbstractionImp() {}

};

class RealAbstractionImp : public AbstractionImp

{

public:

RealAbstractionImp() {};

virtual ~RealAbstractionImp() {};

void Operation() {

cout << "RealAbstractionImp" << endl;

}

};

class Abstraction

{

public:

virtual ~Abstraction() {};

virtual void Operation()=0;

protected:

Abstraction() {}

};

class RealAbstraction : public Abstraction

{

public:

RealAbstraction(AbstractionImp* imp) : _imp(imp) {}

~RealAbstraction() {}

void Operation() {

_imp->Operation();

}

private:

AbstractionImp* _imp;

};

#endif // _BRIDGE_H

bridge.cpp

#include "bridge.h"

int main()

{

AbstractionImp* imp = new RealAbstractionImp;

Abstraction* action = new RealAbstraction(imp);

action->Operation();

return 0;

}

编译:make bridge

上一篇 下一篇

猜你喜欢

热点阅读