设计模式之代理模式Proxy

来源:互联网 发布:朋克字母 软件 编辑:程序博客网 时间:2024/06/05 16:06

为类提供另一个代理类,控制对该类的访问。


代码示例:

class ICar{public:virtual void driveCar() = 0;};class Car : public ICar{public:virtual void driveCar() override{cout << "Car has been driver!" << endl;}};class ProxyCar : public ICar{public:int _driver_age;ICar* _realCar;public:ProxyCar(int driver_age): _realCar(new Car()), _driver_age(driver_age){}~ProxyCar(){delete _realCar;}virtual void driverCar() override{if(_driver_age <= 16){cout << "sorry, the driver is too young to drive." << endl;}else {_realCar->driverCar();}}};void main(){ICar* car = new ProxyCar(16);car->DriverCar();delete car;car = new ProxyCar(25);car->DriverCar();delete car;}


原创粉丝点击