代理模式

软件设计                  石家庄铁道大学信息学院

 

实验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. 注意编程规范。

 

 

posted @ 2021-11-13 16:40  我试试这个昵称好使不  阅读(103)  评论(0编辑  收藏  举报