原文:乐在其中设计模式(C#) - 代理模式(Proxy Pattern)
[索引页][源码下载]
乐在其中设计模式(C#) - 代理模式(Proxy Pattern)
作者:webabcd
介绍
为其他对象提供一个代理以控制对这个对象的访问。
示例
有一个Message实体类,某对象对它的操作有Insert()和Get()方法,用一个代理来控制对这个对象的访问。
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL2ltYWdlcy5jbmJsb2dzLmNvbS9jbmJsb2dzX2NvbS93ZWJhYmNkLzgyNjY3L29fUHJveHkucG5n.png?w=700&webp=1)
MessageModel
IMessage
SqlMessage
MessageProxy
client
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using System;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using System.Data;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using System.Configuration;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using System.Collections;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using System.Web;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using System.Web.Security;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using System.Web.UI;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using System.Web.UI.WebControls;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using System.Web.UI.WebControls.WebParts;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using System.Web.UI.HtmlControls;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
using Pattern.Proxy;
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Ob25lLmdpZg%3D%3D.gif?w=700&webp=1)
public partial class Proxy : System.Web.UI.Page
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9Db250cmFjdGVkQmxvY2suZ2lm.gif?w=700&webp=1)
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvZG90LmdpZg%3D%3D.gif?w=700&webp=1)
{
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
protected void Page_Load(object sender, EventArgs e)
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrU3RhcnQuZ2lm.gif?w=700&webp=1)
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvZG90LmdpZg%3D%3D.gif?w=700&webp=1)
{
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
MessageProxy m = new MessageProxy();
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
Response.Write(m.Insert(new MessageModel("插入", DateTime.Now)));
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
Response.Write("<br />");
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9JbkJsb2NrLmdpZg%3D%3D.gif?w=700&webp=1)
Response.Write(m.Get()[].PublishTime.ToString());
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZFN1YkJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
![乐在其中设计模式(C#) - 代理模式(Proxy Pattern) 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)](https://image.shishitao.com:8440/aHR0cDovL3d3dy5jbmJsb2dzLmNvbS9JbWFnZXMvT3V0bGluaW5nSW5kaWNhdG9ycy9FeHBhbmRlZEJsb2NrRW5kLmdpZg%3D%3D.gif?w=700&webp=1)
}
运行结果
True
SQL方式获取Message 2007-4-1 16:31:24
参考
http://www.dofactory.com/Patterns/PatternProxy.aspx
OK
[源码下载]