<aside> 💡
代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问
</aside>
https://kamacoder.com/problempage.php?pid=1088
#include <iostream>
using namespace std;
// 抽象接口类,真实实体和代理类的共用接口
class Subject{
public:
virtual void buyHouse(int area) = 0;
};
// 真实实体——买房的小明
class Xiaomin: public Subject{
public:
void buyHouse(int area) override {
cout << "YES" << endl;
}
};
// 代理类
class Proxy: public Subject{
public:
// 代理执行筛选房源的工作
void buyHouse(int area) override {
if(area > 100){
xiaomin.buyHouse(area);
}else{
cout << "NO" << endl;
}
}
private:
Xiaomin xiaomin;
};
int main(){
int n;
cin >> n;
for(int i = 0; i < n; ++i){
int area;
cin >> area;
Proxy* proxy = new Proxy();
proxy->buyHouse(area);
delete proxy;
}
return 0;
}