代理模式

定义

将实际业务对象封装成定义的代理对象,通过代理对象来实现实际的业务,并且可以附加自己的操作。

注重点在于实现真正目标对象的同时,附加必要的操作。

类图

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     }
View Code

总结

代理模式是代理对象封装实际对象以实现取代其功能的效果,并可以附加一些其他操作。是一个封装的过程,在业务上以区分适配器模式。

Top
收藏
关注
评论
原文地址:https://www.cnblogs.com/Joy-et/p/4870504.html