代理模式

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

/*

代理模式

*/
namespace App_MYCS.HDL_SJMS.DLMS
{
class my_DLMS
{
public void dy()
{
proxy p = new proxy();
p.SetRealsubject(new realsubject());
p.Request();
}
}

abstract class subject
{
public abstract void Request();
}
//真实类
class realsubject : subject
{
//真实的操作方法
public override void Request()
{
Console.WriteLine("真实的请求");
}
}

//代理类 同样实现抽像类的方法,不过不是自己实现,而是通过转接来调用同样实现接像类的 其它类
class proxy : subject
{
//与真实类一样实现抽像类或接口

//声明真实类对象
realsubject rsj;
public override void Request()
{
//调用真实类的具体方法
if (rsj != null)
{
rsj = new realsubject();
}
rsj.Request();
}

public void SetRealsubject(subject sje)
{
this.rsj = (realsubject)sje;
}
}

}

posted @ 2016-08-28 15:21  悟道007  阅读(148)  评论(0)    收藏  举报