代理模式
软件设计 石家庄铁道大学信息学院
实验14:代理模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解代理模式的动机,掌握该模式的结构;
2、能够利用代理模式解决实际问题。
[实验任务一]:婚介所
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
实验要求:
1. 提交类图;
2. 提交源代码;
#include <iostream> #include <string> using namespace std; class Customer { public: string name; int age; Customer(string n,int a) { name=n; age=a; } }; class Zhongjie { protected: string name; public: Zhongjie(string n){name=n;} virtual void findlove(Customer* customer)=0; }; class HunJie:public Zhongjie { public: HunJie(string name):Zhongjie(name){} void findlove(Customer* customer) { if(customer->age<18) { cout <<name<<":"<<customer->name<<",对不起!不能早恋!" << endl; } else if(customer->age<100) { cout <<name<<":"<<customer->name<<",我们将全力为您找到匹配的另一半!" << endl; } else { cout <<name<<":"<<customer->name<<",对不起!您年龄太大了!" << endl; } } }; int main() { Zhongjie* hunJie1,* hunJie2; hunJie1=new HunJie("百合介绍所"); hunJie2=new HunJie("玫瑰介绍所"); Customer* b1=new Customer("小明",29); Customer* b2=new Customer("小明",16); hunJie1->findlove(b1); hunJie2->findlove(b2); return 0; }
3. 注意编程规范。