UMVCSL4——主面板View和Mediator
UMVCSL4——主面板View和Mediator 本章代码关键字 123456789101112Mediator //Mediator基类,任何在PureMVC内作为Mediator中介的类都应该继承该类,可以实现对其关联ViewUI界面的操作mediator.Name //字符串常量,其派生类里可以覆盖该Name,使用自己的字符串作为名字mediator.ViewComponent //该Mediator派生类对象关联的View类对象Mediator() //Mediator的构造函数,继承该类必须要声明构造函数调用该构造函数,用于初始化名字和关联的对象string[] ListNotificationInterests() { } //Mediator要监听哪些通知的方法,返回要监听的通知字符串数组HandleNotification(INotification notification) {...
UMVCSL3——Model和Proxy
UMVCSL3——Model和Proxy 本章代码关键字 12345Proxy //Proxy基类,任何在PureMVC内作为Proxy代理的类都应该继承该类,可以实现对其关联数据的操作proxy.Name //字符串常量,其派生类里可以覆盖该Name,使用自己的字符串作为名字proxy.proxyName //获取该proxy派生类的Nameproxy.Data //该proxy派生类对象关联的Model类对象Proxy(string proxyName, object data = null) //Proxy的构造函数,继承该类必须要声明构造函数调用该构造函数,用于初始化名字和关联的对象 Model 这里的 Model...
UMVCSL2——框架导入和通知名类
UMVCSL2——框架导入和通知名类 关于PureMVC的版本 进入 PureMVC C# 的Github页面后,在学习阶段,我们使用其单核版本也就是标准版 下面这个页面就是标准版 标准版和多核版区别简单来说就是: 下图的Facade是否有多个,标准版就只有一个 如果是多核版,Facade对象可以有多个,用于各个子系统的管理 导入框架 下载源代码,并使用Visual Studio生成dll文件(使用VS2022生成的dll文件导入到Unity2021版本下会报错!原因未知)(该方法会更加安全) 请注意!生成dll文件的操作务必不要在Unity编辑器正在打开的项目的文件夹下操作,否则会生成大量的没有必要的文件,且Unity编辑器会报错 右键选择生成即可 之后在:源代码根目录/PureMVC/bin/Debug/(.Net版本)...
UMVCSL1——PureMVC
UMVCSL1——PureMVC PureMVC 基于MVC思想和一些基础设计模式建立的一个轻量级的应用框架,是一个免费开源框架 它最初是执行的ActionScript 3语言使用的,现在已经移植到几乎所有主流平台 PureMVC的中文文档:PureMVC_IIBP_Chinese.pdf PureMVC如何获取 官方网址:http://puremvc.org/ PureMVC的基本结构 MVC + … 代理模式 中介者模式 外观模式 观察者模式 单例模式 Model(数据模型) 关联Proxy(代理)对象,负责处理数据 View(界面) 关联Mediator(中介)对象,负责处理界面 Controller(业务控制) 管理Command(命令)对象,负责处理业务逻辑 Facade(外观) 是MVC三者的经纪人,统管全局 可以获取代理、中介、命令 Notification 通知,负责传递信息 总结 PureMVC是什么 —— 基于MVC思想的第三方开源框架 PureMVC如何获取 ——...
UMVCL10——MVX 之 MVE
UMVCL10——MVX 之 MVE MVE 注意:MVE为拓展思想,是个人总结,讲解目的是拓展大家的思路 全称为模型(Model)—视图(View)—事件中心(EventCenter) Model提供数据,View负责界面,EventCenter负责数据传递 View第一次显示获取Mode数据用于更新自己,并通知事件中心监听事件 数据更新时(玩家操作或者服务器更新)通过告知事件中心触发并分发事件 数据从事件中心流入View中进行更新 MVE的好处 利用事件中心的观察者模式,让M和V层的之间的关系更加灵活多变 减少了目前数据层的负载,将数据层事件全部交由事件中心处理 注意 讲解MVE的主要目的,是让大家对事件传递这种形式建立一个概念,为之后的pureMVC讲解做热身 观察者设计模式是解耦的一大利器
UMVCL9——MP(MVVM)基本实例
UMVCL9——MP(MVVM)基本实例 MP(MVVM)基本实例 还是和上一章相同的UI需求 假设我们有一个主面板,它的各个UI控件需要的效果如下 有一个选角面板,它的各个UI控件需要的效果如下 前置知识 本章的代码编写使用了Unity小框架的UI管理器和UI基类,需要先学习这方面内容才能理解下列代码 Model 直接使用MVC那一章的Model代码即可 Panel 笔者注:实际学习时使用的对老师课上小框架的改编,实际代码可能与课上不符,你可以忽略掉那些意义不明的参数 找控件 通过集成小框架中的UI基类实现了(只需要通过控件名即可获取控件) 逻辑处理 数据更新 MP_MainPanel.cs 123456789101112131415161718192021222324252627282930313233343536373839404142using UnityEngine.UI;public class MP_MainPanel : BasePanel{ //1.找控件 通过集成小框架中的UI基类实现了 //2.逻辑处理 ...
UMVCL8——MVX 之 MVVM
UMVCL8——MVX 之 MVVM MVVM 全称为模型(Model)—视图(View)—视图模型(ViewModel) Model提供数据,View负责界面,ViewModel负责逻辑的处理 MVVM的由来是MVP(Model-View-Presenter)模式与WPF结合应用时发展演变过来的一种新型框架 MVVM和MVP的对比 什么是数据绑定 将一个用户界面元素(控件)的属性,绑定到一个类型(对象)实例上的某个属性的方法。 如果开发者有一个 MainViewMode 类型的实例,那么他就可以把 MainViewMode 的 "Lev" 属性绑定到一个UI中Text的 "Text" 属性上。 “绑定”了这2个属性之后,对 Text 的 Text 属性的更改将“传播”到 MainViewMode 的 Lev 属性, 而对 MainViewMode 的 Lev 属性的更改同样 会“传播”到 Text 的 Text...
UMVCL7——MVP基本实例
UMVCL7——MVP基本实例 MVP基本实例 还是和上一章相同的UI需求 假设我们有一个主面板,它的各个UI控件需要的效果如下 有一个选角面板,它的各个UI控件需要的效果如下 该UI的MVC的代码逻辑如下: Model层 直接使用MVC那一章的Model代码即可 View层 相比MVC的那一章,这里的View层代码不一定需要再提供更新控件显示的方法了,只需要管理控件即可 更新控件的实现交给Presenter(主持人)层脚本实现 MVP_MainView.cs 12345678910111213141516171819202122232425using UnityEngine;using UnityEngine.UI;public class MVP_MainView : MonoBehaviour{ public Text txtName; public Text txtLev; public Text txtMoney; public Text txtGem; public Text txtPower; public...
UMVCL6——MVX 之 MVP
UMVCL6——MVX 之 MVP MVP 全称为:模型(Model)—视图(View)—主持人(Presenter) Model提供数据,View负责界面,Presenter负责逻辑的处理 它是MVC的一种变式,是针对MVC中M和V存在耦合的优化 MVP和MVC的对比 MVP与MVC有着一个重大的区别: 在MVC中View会直接从Model中读取数据而不是通过Controller 而在MVP中View并不直接使用Model,它们之间的通信是通过Presenter来进行的,所有的交互都发生在Presenter内部。 如何理解MVC中V会从M中读取数据 很明显,Controller在这里只是起到了将Model层代码传入到View层方法的作用 MVP的作用 MVP中的Presenter(主持人)将完全断绝View和Model的来往,主要程序逻辑都在Presenter中实现 也因此,Presenter层就会相对“较重”,代码较多