代理模式——C++实现
问题描述:婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
类图:
代码:
#include<iostream> using namespace std; class People{ public: void setAge(int Age); void lovers(); }; class Real:public People{ private: int age; public: void setAge(int Age){ age=Age; } int getAge(){ return age; } void lovers(){ cout<<"已为您匹配到最佳伴侣"<<endl; } }; class Proxy:public People{ private: Real *real; public: void setReal(Real *real){ this->real=real; } void setAge(int Age){} void lovers(){ if(real->getAge()<18){ cout<<"对不起,您还未满18周岁,不能早恋!"<<endl; }else{ real->lovers(); } } }; int main(){ Proxy *proxy=new Proxy(); Real *real=new Real(); real->setAge(16); cout<<"王小牛16岁"<<endl; proxy->setReal(real); proxy->lovers(); real->setAge(22); cout<<"张言22岁"<<endl; proxy->setReal(real); proxy->lovers(); }
运行截图: