每日博客

桥接模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解桥接模式的动机,掌握该模式的结构;

2、能够利用桥接模式解决实际问题。

 

 

[实验任务一]:两个维度的桥接模式

用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。

#include <iostream>
using namespace std;

class AbstractCar {
public:
virtual void run () = 0;
};

class Car:public AbstractCar {
public:
void run () {
cout<<"Car";
}
};

class Bus:public AbstractCar {
public:
void run () {
cout<<"Bus";
}
};

class AbstractRoad {
public:
AbstractRoad(AbstractCar *car):car(car){}
virtual void run() = 0;
protected:
AbstractCar *car;
};

class SpeedWay: public AbstractRoad {
public:
SpeedWay(AbstractCar *car):AbstractRoad(car){}
void run() {
car->run();
cout<<" 水泥路"<<endl;
}
};

class Street: public AbstractRoad {
public:
Street(AbstractCar *car):AbstractRoad(car){}
void run() {
car->run();
cout<<" 沥青路"<<endl;
}
};
main() {
AbstractRoad *carOnSpeedway = new SpeedWay(new Car);
AbstractRoad *busOnSpeedway = new SpeedWay(new Bus);
AbstractRoad *carOnStreet = new Street(new Car);
AbstractRoad *busOnStreet = new Street(new Bus);
carOnSpeedway ->run();
busOnSpeedway ->run();
carOnStreet ->run();
busOnStreet ->run();
}

 

posted @ 2021-10-23 21:49  谦寻  阅读(61)  评论(0编辑  收藏  举报