您的位置:首页 > 编程语言 > C#

代理模式 c#

2016-01-07 23:50 369 查看
  当我们由于某些原因,不能或者不需要对角色进行直接访问的时候,那么我们就可以通过代理对象去实现我们的具体行为,这个代理对象类似于媒婆的作用。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

namespace ConsoleApplication1
{
class Program
{
/// <summary>
/// 抽象角色
/// </summary>
public abstract class Role
{
public abstract void BuyProduct();
}

/// <summary>
/// 真实角色
/// </summary>
public class RealBuyRole : Role
{
public override void BuyProduct()
{
Console.WriteLine("buy something");
}
}

/// <summary>
/// 代理角色
/// </summary>
public class Proxy:Role
{
private RealBuyRole realRole;

public override void BuyProduct()
{
if (realRole == null)
{
realRole = new RealBuyRole();
}

this.PreBuyProduct();

// 调用真实角色方法
realRole.BuyProduct();

this.PostBuyProduct();
}

/// <summary>
/// 代理角色的前置行为
/// </summary>
public void PreBuyProduct()
{

Console.WriteLine("买东西前做的事情");
}

/// <summary>
/// 代理角色的后置行为
/// </summary>
public void PostBuyProduct()
{
Console.WriteLine("买东西后做的事情");
}
}

static void Main(string[] args)
{
Role proxy = new Proxy();
proxy.BuyProduct();

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: