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
    收藏
    关注
    评论
  • 相关阅读:
    关于在UNIcode环境下得TCHAR转string类型以及string转TCHAR
    c++重要知识点
    c语言五子棋
    修改单词首字母大小写
    MFC界面分割以及挂载
    c语言操作文件函数大全
    字符串的分割
    简单售货机代码
    Oracle数据库的查询
    oracle数据库四大语言
  • 原文地址:https://www.cnblogs.com/Joy-et/p/4870504.html
Copyright © 2011-2022 走看看