zoukankan      html  css  js  c++  java
  • 【Unity与23种设计模式】代理模式(Proxy)

    GoF中定义:

    “提供一个代理者位置给一个对象,好让代理者可以控制存取这个对象。”

    代理模式多用来优化资源的加载

    当资源已经加载过时,使用原来的资源

    当资源没有加载过时,开始加载

    此过程由代理模式控制

    代理模式就像是一个过滤器

    只有在一定条件下才可以执行一定的代码

    这个条件可以在外部进行控制

    //原来的功能类
    public abstract class Subject {
        public abstract void Request();
    }
    
    public class RealSubject : Subject {
        public RealSubject() { }
    
        public override void Request()
        {
            Debug.Log("RealSubject.Request");
        }
    }
    //代理
    public class Proxy : Subject {
        RealSubject m_RealSubject = new RealSubject();
    
        public bool ConnectRemote { get; set; }
        public Proxy() { }
        public override void Request()
        {
            if (ConnectRemote)
                m_RealSubject.Request();
            else
                Debug.Log("Proxy.Request");
        }
    }
    //测试类
    public class TestProxy {
        void UnitTest() {
            Proxy theProxy = new Proxy();
    
            theProxy.Request();
            theProxy.ConnectRemote = true;
            theProxy.Request();
        }
    }
    //测试结果
    //Proxy.Request();
    //RealSubject.Request();

    文章整理自书籍《设计模式与游戏完美开发》 菜升达 著

  • 相关阅读:
    内存优化
    OpenThreads库学习
    WPS/office使用技巧系列
    NB-IOT学习
    JSON和XML
    物联网平台学习
    .net提供的5种request-response方法一
    HTML5之IndexedDB使用详解
    jQuery圆形统计图实战开发
    用javascript将数据导入Excel
  • 原文地址:https://www.cnblogs.com/fws94/p/7479719.html
Copyright © 2011-2022 走看看