设计模式之代理模式

    代理模式,为其它对象提供一种代理以控制对这个对象的访问。代理是真实对象的代表。说的简单点就是通过一个中介为我们完成某件事。举个简单的例子:就拿我们租房这件事来说,我们想要租房首先需要找到中介,由中介为我们联系房主,帮我们完成租房这一过程。用代码表示如下:


class House-owner
{
	//房东类,用于定义和获取不同房东的名字
	privatestring name;
	publicstring Name
	{
		get{return name;}
		set{name=vlaue; }
	}
}
 
//租房接口
interface IRenting
{
	voidRenting_a_house();
}
classHouse-renter:IRenting
{
	//租房者类,初始化获得房东实例
	House-ownermm;
	publicHouse-renter(House-owner mm)
	{
		this.mm=mm;
	}
 
	//租房者提出租房请求
	publicvoid Renting_a_house()
	{
		console.WriteLine(mm.Name+"我想租房");
	}
}
classZhongJie:IRenting
{
	//中介类,房东和租房者中间的桥梁
	House-rentergg;
	publicZhongJie(House-owner mm)
	{	
		gg=newHouse-renter(mm);
	}
	//中介为租房者向房东提出租房请求
	publicvoid Renting_a_house()
	{
		gg.Renting_a_house();
	}
}

而在主函数中则通过这个zhongjie类来完成租房者的功能

House-owner hh=newHouse-owner();
hh.Name="房东1";
 
ZhongJiezhongjie=new ZhongJie(hh);
zhongjie.Renting_a_house();

    在此过程中,房东和租房者互不相识,ZhongJie类充当的就是代理这个角色,帮助租房者完成租房这一功能。

 

    相信看了上面的介绍会对代理模式有个更深的认识。但此时我却有点迷惑,是关于策略模式和代理模式的,这两个模式都是通过一个中间类来完成另外一个类的实例化和其功能,但是不知这两个模式又有什么区别呢?望各位大能指点迷津。

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值