unity设计模式——代理模式

news2024/11/23 1:27:03

         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.coloradmin.cn/o/1068993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx高可用配置(五)

keepalived keepalived安装 1.#进入根目录下的 usr目录 cd /usr 2.#安装keepalived yum install keepalived -y 3.安装完成后在根目录etc下会有个keepalived目录 4.进入keepalived目录 cd keepalived/ 5.ll命令查看,会有个配置文件 keepalived.conf 6.ke…

【已解决】Python打包文件执行报错:ModuleNotFoundError: No module named ‘pymssql‘

【已解决】Python打包文件执行报错:ModuleNotFoundError: No module named pymssql 1、问题2、原因3、解决 1、问题 今天打包一个 tkinter pymssql 的项目的时候,打包过程很顺利,但是打开软件的时候,报错 ModuleNotFoundError: …

何林达获得“软件方法建模师”称号

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 何林达做对所有强化自测题,获得“软件方法建模师”称号。 软件方法建模师 满分完成当前所有《软件方法》强化自测题的同学,可获得“软件方法建模师”的称号。…

GPT系列论文解读:GPT-3

GPT系列 GPT(Generative Pre-trained Transformer)是一系列基于Transformer架构的预训练语言模型,由OpenAI开发。以下是GPT系列的主要模型: GPT:GPT-1是于2018年发布的第一个版本,它使用了12个Transformer…

zabbix监控,zabbix部署

目录 zabbix监控 zabbix概述 zabbix 监控原理 zabbix 6.0功能组件 1、Zabbix Server 2、数据库 3.、Web 界面 4、Zabbix Agent 5、Zabbix Proxy 6、Java Gateway Zabbix部署 部署 zabbix 服务端 zabbix的客户端部署 自我监控 添加zabbix的其他客户端主机 zabbix…

BUGKU-simple_SSTI_1漏洞注入

SSTI漏洞注入 SSTI全称Server side template injection.服务端模板注入这节课主要讲flask的模板注入.flask会把类似于 的变量当做参数来渲染并填充到web页面,如果该参数可控并被后台解析则有可能被注入恶意代码导致注入漏洞请注意 模板注入只会存在于二次渲染中,无二次渲染不会…

漏刻有时数据可视化Echarts组件开发(39)splitLine网格线效果

splitLine设置坐标轴网格线的样式 show:是否显示网格线。默认为true。lineStyle:线条样式,包括类型(type)、颜色(color)、宽度(width)等。例如,可以设置为da…

JVM篇---第九篇

系列文章目录 文章目录 系列文章目录一、什么是指针碰撞?二、什么是空闲列表三、什么是TLAB? 一、什么是指针碰撞? 一般情况下,JVM的对象都放在堆内存中(发生逃逸分析除外)。当类加载检查通过后&#xff0…

【自用】ubuntu 18.04 LTS安装opencv 3.4.16 + opencv_contrib 3.4.16

1.下载 opencv 3.4.16 opencv_contrib 3.4.16 其中,opencv_contrib解压后的多个文件夹复制到opencv内、合并 声明:尚未验证该方式是否可行 2.安装 参考博文: https://zhuanlan.zhihu.com/p/650792342 https://zhuanlan.zhihu.com/p/8719780…

Java基于SpringBoot 的汽车租赁系统

1 简介 致远汽车租赁管理方面的任务繁琐,以至于公司每年都在致远汽车租赁管理这方面投入较多的精力却效果甚微,致远汽车租赁系统的目标就是为了能够缓解致远汽车租赁管理工作方面面临的压力,让致远汽车租赁管理方面的工作变得更加高效准确。 文章首发地址 2 技术栈 开发语言…

前端实现chatGpt流式输出 - SSE

前端实现chatGpt流式输出 - SSE 一、chatGpt流式输出技术分析 在使用ChatGPT时,模型的回复内容是连续输出,而不是整段话直接出现,因为模型需要不断预测接下来要回复什么内容,如果等整段回复生成之后再输出到网页,用户…

修改el-tab标签页的label默认样式(插槽)

目录 需求: 修改方式: 原始代码: 修改代码: 具体步骤: 需求: 修改el-tab标签页的label默认样式(如图所示,该label标签的字体较小,以至于在页面上不太明显&#xff0c…

蔡司光学:儿童近视眼镜的匠心之选

如今我们正处于“信息爆炸”的时代,生活的方方面面都离不开手机、平板和电脑等各种电子设备,加上不正确的用眼习惯,也使青少年及儿童的近视率呈现逐年攀升的态势,为了及时预防儿童近视,业内著名眼视光品牌蔡司光学积极…

Flutter安卓混淆的相关问题

当你执行 build apk 后,flutter会默认进行混淆,若你的应用中引用了第三方的sdk,在debug模式下没问题,但在release下可能就会出现各种各样的问题,找不到某个类,或者某个功能无法使用,甚至直接崩溃…

html 笔记:CSS

1 什么是CSS CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素样式通常存储在样式表中 1.1 css的语法格式 1.1.1 选择器种类 HTML选择器: 重新定义HTML的某种标签的显示格式id选择器 对于HTML文档中的某个标签,定义它的显示格式…

matlab展示两个向量之间的差异

一是使用plot函数 画出两个向量的曲线,并将它们重叠在一起。这样可以清楚地看到两个向量之间的差异 x linspace(0,2*pi,100); y1 sin(x); y2 cos(x); plot(x,y1,x,y2) legend(sin(x),cos(x)) 二是使用stem函数 构造两个向量的差异向量,用stem函数绘…

常见数学名词

目录 正数 positive number 负数 negative number 整数 integer number 自然数 Natural number 实数 real number 虚数 imaginary number 复数 complex number 复数的模 ∣z∣ 共轭复数 conjugate complex number 复数运算法则 正数 positive number 正数全称正实数&…

jmeter利用自身代理录制脚本

在利用代理录制脚本时一定要安装java jdk,不然不能录制的。 没有安装过java jdk安装jmeter后打开时会提示安装jdk,但是mac系统中直接打开提示安装jdk页面后下载的java并不是jdk(windows中没有试验过,笔者所说的基本全部指的是在ma…

再不用担心网口不够啦,网管交换机让单网卡接多条宽带

先交代一下我之前的使用环境,家里先有一条移动赠送的宽带,后来办手机卡联通又附带一条宽带,由于我的双口软路由的网口无法接入两条宽带,只有一个lan口一个wan口,无法多wan接入,而插USB网卡又要添加驱动&…

Suricata – 入侵检测、预防和安全工具

一、Suricata介绍 Suricata是一个功能强大、用途广泛的开源威胁检测引擎,提供入侵检测 (IDS)、入侵防御 (IPS) 和网络安全监控功能。它执行深度数据包(网络流量)检查以及模式匹配,在威胁检测中非常强大。 工作流程: 主…