C++ 代理模式

本文通过一个简单的租房场景,介绍了代理模式的构成和作用。包括一个抽象基类定义纯虚函数,一个具体实现类(房东)实现功能,以及一个代理类(中介)作为控制访问的中间层。代理类在调用实际功能的同时,增加了额外的管理操作。代码示例展示了如何使用代理模式进行功能扩展。
摘要由CSDN通过智能技术生成

 一、总体组成:

1.一个抽象基类,将所需实现的功能定义为纯虚函数

2.一个具体实现类,继承基类,重写纯虚函数实现具体的功能

3.一个代理类,继承基类,存储一个实现类指针,重写纯虚函数,调用实现类的具体方法

二、作用

为对象提供一种代理来控制对象的使用和访问

#include<iostream>
using namespace std;
/*
	场景:租房子,组成:房东,中介代理,租客
*/

// 租房子抽象基类
class RentHouse {
public:
	virtual void rentHouse() = 0;
};

// 房东
class LandLord : public RentHouse {
private:
	string tenant; // 租客
public:
	LandLord(const string& _tenant):tenant(_tenant) {
	
	}
	void rentHouse() {
		cout << "房东 租房子给 " << tenant << endl;
	}
};

// 中介
class Proxy : public RentHouse {
private:
	LandLord* landlord;

	void manageHouse() {
		cout << "中介代理管理" << endl;
	}
public:
	Proxy(const string& _tenant) {
		landlord = new LandLord(_tenant);
	}
	~Proxy() {
		delete landlord;
		landlord = nullptr;
	}
	void rentHouse() {
		cout << "中介代理租房" << endl;
		landlord->rentHouse();
		manageHouse();
	}

};

//int main() {
//	string tenant = "YZM";
//	Proxy* pxy = new Proxy(tenant);
//	pxy->rentHouse();
//	delete pxy;
//	pxy = nullptr;
//	return 0;
//}

作笔记使用,如有错误还请指正!!如果觉得有帮助可以点个赞哈哈哈!!多谢!!!溜了溜了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想是优秀社畜

您的打赏是对我最大的鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值