每日博客
代理模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解代理模式的动机,掌握该模式的结构;
2、能够利用代理模式解决实际问题。
[实验任务一]:婚介所
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
C++
#include <iostream>
#include<memory>
using namespace std;
class play{
public:
virtual void play1() = 0;
virtual void play2() = 0;
};
class player : public play{
public:
void play1(){
cout<<"需求1"<<endl;
}
void play2(){
cout<<"需求2"<<endl;
}
};
//未成年
class proxyPlayer1 : public play{
public:
proxyPlayer1(){
m_player = new player();
}
void play1(){
cout<<"未成年不得早恋!"<<endl;
}
void play2(){}
private:
player* m_player;
};
//成年
class proxyPlayer2 : public play{
public:
proxyPlayer2(){
m_player = new player();
}
void play1(){
m_player->play1();
}
void play2(){
m_player->play2();
}
private:
player* m_player;
};
main()
{
proxyPlayer2* p2 = new proxyPlayer2();
p2->play1();
p2->play2();
cout<<"==============="<<endl;
proxyPlayer1* p1 = new proxyPlayer1();
p1->play1();
p1->play2();
}