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

    1.定义

    Provide a surrogate(代理) or placeholder for another object to control access to it(为其他对象提供一种代理以控制对这个对象的访问)

    2.模式说明

    .Subject抽象主题角色

    抽象主题类可以是抽象类也可以是接口,是一个最普通的业务类型定义,无特殊要求。

    .RealSubject具体主题角色

    也叫做被委托角色、被代理角色。是业务逻辑的具体执行者。

    .Proxy代理主题角色

    也叫做委托类、代理类。它负责对真实角色的引用,并且在真实主题角色处理完毕前后做预处理和善后处理工作。

        public interface ISubject
        {
            void Request();
        }
    
        public class ConcreteSubject : ISubject
        {
            public void Request()
            {
                Console.WriteLine("处理具体业务");
            }
        }
    
        public class Proxy : ISubject
        {
            private readonly ISubject _subject;
    
            public Proxy(ISubject subject)
            {
                _subject = subject;
            }
    
            public void Request()
            {
               _subject.Request();
            }

    //预处理
    private void Before()
    {}

    //后续处理
    private void After()
    {} }
        /// <summary>
        /// 场景类
        /// </summary>
        class Program
        {
    
            private static void Main(string[] args)
            {
                Proxy p = new Proxy(new ConcreteSubject());
    
                p.Request();
    
                Console.ReadKey();
            }
    
        }

    3.代理模式的使用场景

    打官司为什么要找个律师?因为你不想参与中间过程的是是非非,只要完成自己的答辩就成。其他的比如事前调查、事后追查都由律师来搞定,这样就可以减轻自己的负担。

  • 相关阅读:
    数据库概论练习题第一章整理(1)
    eclipse启动报错 see the log file的解决办法
    有关myeclipse8.5.0搭建java web项目环境【未整理】
    Pycharm安装及配置
    Anaconda安装及配置环境
    C#操作字符串方法总结
    SQL语句中的换行符
    委托
    基类VS接口
    泛型及其继承和同一性
  • 原文地址:https://www.cnblogs.com/JustYong/p/4589336.html
Copyright © 2011-2022 走看看