定制网站的好处,编程培训机构价格,网站建立费用多少钱,建设茶网站目的代理模式:
为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下#xff0c;一个对象不适合或者不能直接引用另一个对象#xff0c;而代理对象可以在客户端和目标对象之间起到中介的作业。
代码如下:
#include iostream
using namespace std;//共有接口 …代理模式:
为其他对象提供一种代理以控制对这个对象的访问。 在某些情况下一个对象不适合或者不能直接引用另一个对象而代理对象可以在客户端和目标对象之间起到中介的作业。
代码如下:
#include iostream
using namespace std;//共有接口 代理和真正的类都继承它
class AbstractCommonInterface
{
public:virtual void run() 0;
};class MySystem :public AbstractCommonInterface{
public:virtual void run(){cout 系统启动 endl;}
};//提供一种代理来控制对其他对象的访问
//必须要权限验证不是所有人都能启动要提供用户名和密码
class MySystemProxy :public AbstractCommonInterface
{
public:MySystemProxy(string a,string b):username(a),password(b){pSystem new MySystem;}bool checkUsernameAndPassword(){if (username admin password admin){return true;}return false;}virtual void run(){if (checkUsernameAndPassword()){cout 用户名和密码正确 endl;this-pSystem-run();}else{cout 用户名或者密码错误 endl;}}~MySystemProxy(){if (pSystem ! nullptr){delete pSystem;}}MySystem *pSystem;string username;string password;
};void test01()
{//把代理当作真正的服务器来用了MySystemProxy *proxy new MySystemProxy(root, admin);proxy-run();
}void test02()
{MySystemProxy *proxy new MySystemProxy(admin, admin);proxy-run();
}int main()
{test01();cout --------------------- endl;test02();return 0;
}测试结果: