996引擎-源码学习:PureMVC Lua 中的 Facade 类

996引擎-源码学习:PureMVC Lua 中的 Facade 类

  • 1. 核心概念
    • 1.1 外观模式
    • 1.2 多例模式
  • 2. 关键组件
    • Notification
    • Controller:
    • Model
    • View
  • 3. 主要功能
  • 4. 初始化流程
  • 5. 通信机制
  • 6. 生命周期管理
    • 1. Facade 初始化流程图
    • 2. 发送通知时序图
  • 中介者 PlayerBestRingLayerMediator
    • OpenLayer 打开界面
    • 3. 类图

1. 核心概念

1.1 外观模式

Facade 是 PureMVC Lua 框架的核心类
(见名知意,它是一个外观模式)用于为复杂子系统提供一个简单接口。它封装了框架的核心组件(Controller、Model、View)及其交互逻辑。外观模式将子系统与客户端进行解耦,提高子系统的独立性和可移植性。

1.2 多例模式

Facade 类又采用了 Multiton 模式。(外观+多例)模式

  1. 独立管理:适用于大型应用,为不同子应用或模块创建各自的 Facade 实例,
    如游戏中的主游戏、商城、社交模块,各模块的 Command(命令模式)、Proxy(代理模式) 和 Mediator(中介模式) 由对应 Facade 管理,避免相互干扰 。
  2. 资源隔离:不同模块的资源,如数据缓存、视图组件等,通过各自的 Facade 实例独立分配管理ÿ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/76331.shtml

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

相关文章

链式多分支规则树模型的应用

目录 开始调用 初始化 欢迎关注我的博客!26届java选手,一起加油💘💦👨‍🎓😄😂 引入 最近在学习一个项目中的链式多分枝规则树模型的使用,模型如下: 如图所…

GitLab之搭建(Building GitLab)

GitLab之搭建 “ 在企业开发过程中,GitLab凭借其强大的版本管理、CI/CD集成和项目管理功能,成为许多团队的首选工具。本文将探讨GitLab的基础介绍、搭建过程、权限管理、代码审查以及团队知识管理等方面。通过详细的步骤和实用的技巧,旨在帮…

蓝桥杯 小蓝的操作(一维差分)

问题描述 一个数组 aa 中共包含 nn 个数,问最少多少次操作,可以让 aa 数组所有数都变成 11 。 操作的内容是:每次操作可以任选一个区间使得区间内的所有数字减 11 。 数据保证一定有解。 输入格式 第一行一个整数 nn 表示有 nn 个整数。 …

C# net CMS相关开源软件 技术选型 可行性分析

C# net CMS相关开源软件 技术选型 可行性分析 OrchardCMS(微软主导) https://github.com/OrchardCMS/OrchardCore https://docs.orchardcore.net/en/latest/ BSD Umbraco-CMS(丹麦) https://github.com/umbraco/Umbraco-CMS https://docs.umbraco.com/…

程序化广告行业(77/89):融资、并购与上市全景洞察

程序化广告行业(77/89):融资、并购与上市全景洞察 大家好呀!一直以来,我都希望能和大家一起在技术知识的海洋里畅游、学习进步。前面我们已经了解了程序化广告行业的发展态势、PC端和移动端投放差异以及行业融资的大致…

【解决方法】VMware 此平台不支持虚拟化Intel VT-x/EPT

目录 1. 引言2. 问题描述3. 解决方法3.1 方法一(临时)3.2 方法二(此方法非常离谱,永久有效) 4. 🤑鼓励一下5. 求关注6. 我的其他文章推荐 1. 引言 收集同学们遇到的各种VMware安装、使用过程中遇到的问题&a…

项目学习总结001

1. 策略模式和工厂模式 https://mp.weixin.qq.com/s/RG-h7r69JyKUlBZylJJIFQ 在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可以使用一种设计模式来使得系统可以灵活地选择解决途径,也能够方便地增加新的解决途径。这就是…

OpenHarmony 5.0版本视频硬件编解码适配

一、简介 Codec HDI(Hardware Device Interface)对上层媒体服务提供视频编解码的驱动能力接口,主要功能有获取组件编解码能力,创建、销毁编解码器对象,启停编解码器操作,编解码处理等。 Codec HDI 2.0接口…

深度解析基于 Web Search MCP的Deep Research 实现逻辑

写在前面 大型语言模型(LLM)已成为我们获取信息、生成内容的重要工具。但它们的知识大多截止于训练数据的时间点,对于需要实时信息、跨领域知识整合、多角度观点比较的深度研究 (Deep Research) 任务,它们往往力有不逮。如何让 LLM 突破自身知识的局限,像人类研究员一样,…

鸿蒙案例---生肖抽卡

案例源码: Zodiac_cards: 鸿蒙生肖抽奖卡片 效果演示 初始布局 1. Badge 角标组件 此处为语雀内容卡片,点击链接查看:https://www.yuque.com/kevin-nzthp/lvl039/rccg0o4pkp3v6nua 2. Grid 布局 // 定义接口 interface ImageCount {url:…

基于RV1126开发板实现自学习图像分类方案

1. 方案简介 自学习:在识别前对物体图片进行模型学习,训练完成后通过算法分类得出图像的模型ID。 方案设计逻辑流程图,方案代码分为分为两个业务流程,主体代码负责抓取、合成图像,算法代码负责训练和检测功能。 2. 快速…

cat命令查看文件行数

在Linux和Unix-like操作系统中,cat命令主要用于查看文件内容,而不是直接用来查看文件行数。如果你想要查看一个文件的行数,可以使用以下几种方法: 方法1:使用wc命令 wc(word count)命令可以用…

git清理已经删除的远程分支

目录 命令作用 使用场景 示例流程 注意事项 常见问题 git remote update origin --prune git remote update origin --prune 是一个 Git 命令,用于 更新本地远程跟踪分支 并 清理(删除)本地已失效的远程分支引用。以下是详细分解&#…

NLP高频面试题(四十)——什么是 BitFit?

BitFit(Bias-term Fine-tuning)是一种参数高效的微调方法,专注于在预训练模型中仅调整偏置项(bias term),而将其他参数保持不变。这种方法在自然语言处理领域,尤其是在中小规模数据集上,展现出了与全量微调相媲美的性能,同时显著减少了计算资源的消耗。 什么是 BitFi…

Java-servlet(完结篇)过滤器乱码解决与监听器

Java-servlet(完结篇)过滤器乱码解决与监听器 前言一、过滤器乱码解决二、监听器1. HttpSessionListener2. ServletContextListener3. ServletRequestListener 三、监听器的使用场景Java-servlet 结语 前言 在之前的 Java Servlet 学习中,我…

为了避免unboundLocalError和为什么X的值一直不变呢?

## 1.为了避免unboundLocalError 发生unboundLocalError! def generate_integer(level):if level 1:X randint(1,9)return X这里出错的原因在于,一旦if 后面的条件没有成立,然后X根本没出生,然后你去使用它,这是有…

opencv-python基础

一.opencv-python简述 其使用Numpy,所有OpenCV数组结构都转换为Numpy数组,是一个高度优化的数据库操作库。 二.环境安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python 三.基本概念 - 像素是图像的基本单元,每个…

ReentrantLock 实现公平锁和非公平锁的原理!

🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢🤗! 🌟了解 ThreadLocal请看: ThreadLocal有趣讲解,小白也能听懂&#xff…

NLP高频面试题(四十一)——什么是 IA3 微调?

随着大型语言模型的广泛应用,如何高效地将这些模型适配到特定任务中,成为了研究和工程实践中的重要课题。IA3(Infused Adapter by Adding and Adjusting)微调技术,作为参数高效微调的一种新颖方法,提供了在保持模型性能的同时,显著减少可训练参数数量的解决方案。 IA3 …

swift菜鸟教程14(闭包)

一个朴实无华的目录 今日学习内容:1.Swift 闭包1.1闭包定义1.2闭包实例1.3闭包表达式1.3.1sorted 方法:据您提供的用于排序的闭包函数将已知类型数组中的值进行排序。1.3.2参数名称缩写:直接通过$0,$1,$2来顺序调用闭包的参数。1.3.3运算符函…