zoukankan      html  css  js  c++  java
  • CSharp设计模式读书笔记(13):代理模式(学习难度:★★★☆☆,使用频率:★★★★☆)

    代理模式:给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。

    模式角色与结构:

    示例代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace CSharp.DesignPattern.ProxyPattern
    {
        class Program
        {
            static void Main(string[] args)
            {
                Subject subject = new RealSubject();
                //subject.Request();
    
                subject = new ProxySubject();
                subject.Request();
    
                Console.ReadLine();
            }
        }
    
        // 抽象主题角色
        abstract class Subject
        {
            public abstract void Request();
        }
    
        // 真实主题角色
        class RealSubject : Subject
        {
            public override void Request()
            {
                // 业务方法具体实现代码
            }
        }
    
        // 代理主题角色
        class ProxySubject : Subject
        {
            private RealSubject realSubject = new RealSubject(); // 维持一个对真实主题对象的引用
    
            public void PreRequest()
            { }
    
            public override void Request()
            {
                PreRequest(); // 预处理
                realSubject.Request(); // 调用真实主题对象方法
                PostRequest(); // 完成处理
            }
    
            public void PostRequest()
            { }
        }
    }
  • 相关阅读:
    函数式编程
    _.pick lodash
    Vue mixins extend
    js 导入json配置文件
    FormData
    shell中的调试与计算
    linux命令(6/10):find 命令
    Linux性能测试分析命令_sar+iostat+vmstat+top
    linux命令详解之(at)
    linux命令(6/9):watch命令
  • 原文地址:https://www.cnblogs.com/thlzhf/p/3993395.html
Copyright © 2011-2022 走看看