unity设计模式——代理模式

news/2024/7/6 6:31:45 标签: 设计模式, 代理模式

         Subject类,定义了Real Subject和Proxy的共用接口,这样就在任何使用Real Subject的地方都可以使用Proxy。

abstract class Subject : MonoBehaviour
{
    public abstract void Request();
}

        RealSubject类,定义Proxy所代表的真实实体。

class RealSubject : Subject
{
    public override void Request()
    {
        Debug.Log("真实的请求");
    }
}

        Proxy类,保存一个引用使得代理可以访问实体,并提供一个与Subject的接口相同的接口,这样代理就可以用来替代实体。

class Proxy : Subject
{
    RealSubject realSubject;
    public override void Request()
    {
        Debug.Log("代理启动");
        if(realSubject == null)
        {
            realSubject = new RealSubject();
        }
        realSubject.Request();
    }
}

客户端:

class Main : MonoBehaviour
{
    private void Start()
    {
        Proxy proxy = new Proxy();
        proxy.Request();
    }
}

输出内容:

应用场景:

第一,远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实 。

第二种应用是虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的
真实对象。

第三种应用是安全代理,用来控制真实对象访问时的权限。

第四种是智能指引,是指当调用真实的对象时,代理处理另外一些事。


http://www.niftyadmin.cn/n/5076869.html

相关文章

java基础 API Calendar类

Calendar日历类 : package daysreplace;import com.sun.jdi.IntegerValue;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; import java.util.Date;public class Test {public static v…

ntlm哈希传递

哈希传递就是ntlm哈希 概念 早期SMB协议铭⽂在⽹络上传输数据,后来诞⽣了LM验证机制,LM机制由于过于简 单,微软提出了WindowsNT挑战/响应机制,这就是NTLM LM NTLM 哈希传递攻击是针对相同密码的用户认证直接发起攻击&#xff0c…

Linux- 使用ssh远程连接

1. Linux上安装ssh 如果在Linux系统上运行sudo service ssh status提示Unit ssh.service could not be found.,这意味着SSH服务没有安装或者它可能在系统上有一个不同的服务名称。 下面,我们来介绍ssh的安装步骤: 安装SSH服务: 在不同的Lin…

spring 事物源码阅读之传播特性实现

Spring事务传播特性是指在多个事务操作之间如何管理事务的行为。Spring框架提供了不同的事务传播特性,用于定义事务的边界和隔离级别。先来回顾下spring事务传播有哪些类型 传播类型 PROPAGATION_REQUIRED(默认):如果当前存在事…

力扣2578. 最小和分割

题目描述: 给你一个正整数 num ,请你将它分割成两个非负整数 num1 和 num2 ,满足: num1 和 num2 直接连起来,得到 num 各数位的一个排列。 换句话说,num1 和 num2 中所有数字出现的次数之和等于 num 中所…

系统架构设计:7 论企业集成架构设计及应用

目录 一 企业集成 1 企业集成分类:按照集成点分 (1)界面集成(表示集成)

在MySQL中使用!=还能走索引吗?

在MySQL中使用!还能走索引吗? 一般情况下,我们会在一个索引上较多的使用等值查询或者范围查询,此时索引大多可以帮助我们极快的查询出我们需要的数据。 那当我们在where条件中对索引列使用!查询,索引还能发挥他的作用吗&#xf…

C语言结合字符串和整形

把字符串和整形放在一起,比如 char *name "meiyangyang"; uint16_t idx 520;结合成:meiyangyang520 在堆上实现: char* get_name(char *name, uint16_t idx) {int new_name_len strlen(name) 1 snprintf(NULL, 0, "%d…