zoukankan      html  css  js  c++  java
  • 代理模式

    定义

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

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

    类图

    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
    收藏
    关注
    评论
  • 相关阅读:
    你写的单例真的安全吗?
    CountDownLatch&&CyclicBarrier
    初步认识AQS
    Atomic底层原理
    volatile关键字
    Linux常用服务类相关命令
    线程池
    由浅入深TheradLocal
    synchronized关键字
    .net 中dapper实现事务的三种方式总结
  • 原文地址:https://www.cnblogs.com/Joy-et/p/4870504.html
Copyright © 2011-2022 走看看