设计模式--代理模式
定义:
为其他对象提供一个代理,以控制对这个对象的访问.
关键词:
proxy
结构图:
应用场景:
- 远程代理.也就是为一个对象在不同的地址空间提供局部代表,这样可以隐藏一个对象存在于不同地址空间的事实.
- 虚拟代理.是根据需要创建开销很大的对象.通过它来存放实例化需要很长时间的真实对象.
- 安全代理.用来控制对象访问时的权限.
- 智能指引.指当调用真实的对象时,代理处理另外一些事.
例子:
类图:
代码:
interface ICalcute { void Plus(int num1, int num2); } class MyCalculate : ICalcute { public void Plus(int num1, int num2) { HttpContext.Current.Response.Write((num1 + num2).ToString()); } } public class MyProxy : ICalcute { MyCalculate cal; public MyProxy() { cal = new MyCalculate(); } public void Plus(int num1, int num2) { cal.Plus(num1, num2); } }
页面调用:
protected void Page_Load(object sender, EventArgs e) { MyProxy proxy = new MyProxy(); proxy.Plus(10,30); }
效果: