using System;
namespace ProxyPattern
{
//代理模式,概念:为其他对象提供一种代理,以控制对这个对象的访问。
//说明:
//代理模式其实就是现实生活中的中介模式,买主和卖主之间不直接接触通过中间人来达到交易的目的。
//最常见的就是房屋中介,房主由于种种原因不能自己去出售自己的房子,于是委托中介代理销售。
//张先生委托中介小王来帮忙出售自己的房产。
/// <summary>
/// 抽象出张先生和中介小王的共同接口
/// </summary>
interface ISaleHouse
{
/// <summary>
/// 卖房子
/// </summary>
void SaleHouse();
}
/// <summary>
/// 张先生
/// </summary>
class MrZhang : ISaleHouse
{
public void SaleHouse()
{
Console.WriteLine("出售房产!");
}
}
/// <summary>
/// 中介小王
/// </summary>
class ProxyWang : ISaleHouse
{
MrZhang zhang;
public ProxyWang()
{
if(zhang==null)
{
zhang = new MrZhang();
}
}
/// <summary>
/// 中介帮助张先生出售房产
/// </summary>
public void SaleHouse()
{
zhang.SaleHouse();
}
}
class Program
{
static void Main(string[] args)
{
//想买房子的人,找中介小王就可以了,不需要和张先生联系。
ProxyWang wang = new ProxyWang();
//中介小王代理销售张先生的房产
wang.SaleHouse();
Console.Read();
}
}
//代理模式的种类:
//1、远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。
//2、虚拟代理,是根据需要创建开销很大的对象。通过他来存放实例化需要很长时间的真实对象。
//3、安全代理,用来控制真实对象访问时的权限。
//4、智能指引,是指当调用真实的对象时,代理处理另外一些事。
}
namespace ProxyPattern
{
//代理模式,概念:为其他对象提供一种代理,以控制对这个对象的访问。
//说明:
//代理模式其实就是现实生活中的中介模式,买主和卖主之间不直接接触通过中间人来达到交易的目的。
//最常见的就是房屋中介,房主由于种种原因不能自己去出售自己的房子,于是委托中介代理销售。
//张先生委托中介小王来帮忙出售自己的房产。
/// <summary>
/// 抽象出张先生和中介小王的共同接口
/// </summary>
interface ISaleHouse
{
/// <summary>
/// 卖房子
/// </summary>
void SaleHouse();
}
/// <summary>
/// 张先生
/// </summary>
class MrZhang : ISaleHouse
{
public void SaleHouse()
{
Console.WriteLine("出售房产!");
}
}
/// <summary>
/// 中介小王
/// </summary>
class ProxyWang : ISaleHouse
{
MrZhang zhang;
public ProxyWang()
{
if(zhang==null)
{
zhang = new MrZhang();
}
}
/// <summary>
/// 中介帮助张先生出售房产
/// </summary>
public void SaleHouse()
{
zhang.SaleHouse();
}
}
class Program
{
static void Main(string[] args)
{
//想买房子的人,找中介小王就可以了,不需要和张先生联系。
ProxyWang wang = new ProxyWang();
//中介小王代理销售张先生的房产
wang.SaleHouse();
Console.Read();
}
}
//代理模式的种类:
//1、远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。
//2、虚拟代理,是根据需要创建开销很大的对象。通过他来存放实例化需要很长时间的真实对象。
//3、安全代理,用来控制真实对象访问时的权限。
//4、智能指引,是指当调用真实的对象时,代理处理另外一些事。
}