标签:
将实际业务对象封装成定义的代理对象,通过代理对象来实现实际的业务,并且可以附加自己的操作。
注重点在于实现真正目标对象的同时,附加必要的操作。
ISubject定义业务的统一接口,ProxySubject实现对RealSubject的代理。在实际的业务调用中会是用ProxySubject替代RealSubject的业务操作。
1 /// <summary> 2 /// 业务接口 3 /// </summary> 4 public interface ISubject 5 { 6 void Submit(); 7 } 8 9 /// <summary> 10 /// 代理类 11 /// </summary> 12 public class ProxySubject : ISubject 13 { 14 private RealSubject realSubject = null; 15 public ProxySubject(RealSubject realSubject) 16 { 17 this.realSubject = realSubject; 18 } 19 20 public void Submit() 21 { 22 if (!BeforeSubmit()) 23 { 24 return; 25 } 26 realSubject.Submit(); 27 AfterSubmit(); 28 } 29 /// <summary> 30 /// 提交前业务处理 31 /// </summary> 32 /// <returns></returns> 33 private bool BeforeSubmit() 34 { 35 //TODO... 36 return true; 37 } 38 /// <summary> 39 /// 提交后业务处理 40 /// </summary> 41 private void AfterSubmit() 42 { 43 //TODO...after submit 44 } 45 } 46 /// <summary> 47 /// 真实业务类 48 /// </summary> 49 public class RealSubject : ISubject 50 { 51 public void Submit() 52 { 53 //TODO submit 54 } 55 }
代理模式是代理对象封装实际对象以实现取代其功能的效果,并可以附加一些其他操作。是一个封装的过程,在业务上以区分适配器模式。
标签:
原文地址:http://www.cnblogs.com/Joy-et/p/4870504.html