php文件管理系统mvc 源码PureMVC和Unity3D的UGUI制作⼀个简单的员⼯管理系统实例
运⾏实例演⽰.png
前⾔:
1.关于PureMVC:
MVC框架在很多项⽬当中拥有⼴泛的应⽤,很多时候做项⽬前⼈开坑开了⼀半就消失了,后⼈为了填补各种的坑就遭殃的不得了。嘛,程序猿⼤家都不喜欢像⽂案策划⼀样组织⽂字写东西,也不喜欢看别⼈留下不清不楚的⽂档,还不如看代码来得实在。刚开始新⼈看代码是看得头晕,因为这样那样的东西不⼀定能完全猜得透。⽽⽼⼈家就算有经验和阅历,也没有这么多的体⼒去看⼀个庞⼤⽽⼜复杂的糟糕项⽬。因为这种需
求,Unity3D的程序猿就统⼀组织起来,想做⼀个完整规范的程序框架,⽽这时,PureMVC就诞⽣了。我个⼈喜欢PureMVC的原因也很简单,因为它简单粗暴,和Unity3D之间没有依赖性,加上⼜开源,真的遇到Bug能拿到源代码来调试也是很容易执⾏的。Unity3D应⽤商店还有⼀个同类产品叫uFrame Game Framework,它对Unity版本有着依赖,拖视图虽然⽅便,但是⼀旦出bug真的改得够呛的,所以不推荐使⽤它。下⽂便是使⽤PureMVC和Unity3D的UGUI制作⼀个简单的员⼯管理系统实例。
2.通过MVC模式在Unity项⽬当中应⽤的特别提醒:
(1)Unity3D是基于组件设计的,如果没有好的规划,组件之间会产⽣复杂的调⽤关系,导致组件之间复杂的依赖,从⽽破坏了整个系统结构,因此需要设计时确定组件的层次关系,确保依赖关系只存在
于下层对上层。⽽这个是业务逻辑设计问题,PureMVC帮不了你。
(2)仅仅⽤上MVC,解决不了什么问题,或许解决了1%,剩下的99%就被挪到了MVC的C⾥,当你庆祝MVC竣⼯时,99%的问题在那⾥默默的微笑的看着你。(话说以前写PHP的CI框架时候,⼀堆东西扔到XxxAction.Class.php⾥⾯,发现和摆的乱七⼋糟的架构没区别,只是⼤家都习惯了这套框架的规矩,看代码某个东西稍微好⽽已,本质上还是考验基本功和对项⽬的熟悉程度的,23333)
3.PureMVC通过4种pattern实现隔离变化:
(1)facade⾮常适合将UI界⾯对游戏数据的依赖解耦,将UI操作数据的请求封装在facade 接⼝⾥⾯,同时数据变化对UI的影响可以通过notification事件通知来实现,该模式应⽤得⾮常常见。
(2)command模式统⼀对对象的操作,将键盘输⼊,⽹络输⼊输出统⼀成command来操控游戏对象。
(3)proxy维护数据,提供某块数据统⼀的初始化,访问和修改接⼝。
(4)mediator没怎么⽤过,我们的游戏中的UI界⾯每次变化⼀般都是整体更新的,不常⽤局部更新。
以上4中pattern请务必牢牢记住,请务必牢牢记住,请务必牢牢记住。重要的事情要说3便。
4.PureMVC的流程⽰意图
(1)在puremvc中,model/view/controller统⼀是由Facade类的单件实例来统筹管理的。
(2)PureMVC的基本流程:启动PureMVC—>建⽴Mediator来操作视觉元素(按钮与⽂本框)—>点击按钮发送Notification->⽂本框接收Notification改变内容。
(3)⼤致流程可理解为:通过Facade类的单件实例(即:统⼀的门⾯) 启动 puremvc环境,启动同时注册Command对象(相当于asp mvc 中的controller),然后Command通过与之关联的facade(即前⾯的单件实例)来注册Mediator(中介者:⽤于把View与Command联系起来)。
(4)当UI界⾯(即View)上有动静时(⽐如按钮点击了之类),与之关联的Mediator(中介者)会发送通知给facade,然后facade会调⽤command 对象执⾏相关的处理。(即:消息响应)
PureMVC⽰意图.png
⼀.引⼊PureMVC的插件
1.下载PureMVC
安装
2.把PureMVC.DotNET.35.dll放到Plugins⾥⾯就好了。
QA
⼆.动⼿配置⽂件
1.需要完成的实例如下:
实现的界⾯效果.png
2.具体实现的⽬标:
(1)在Scripts⽂件夹下,分别设置模型、视图、控制器对应的⽂件夹Model、View、Controller,分别放置处理数据模型的脚本、处理显⽰视图的脚本、处理逻辑控制的脚本。
(2)如界⾯,⼀个Unity3D和UGUI制作的简单员⼯管理系统,Employee Admin,其中员⼯界⾯Users显⽰有哪些员⼯在登记范围内,⽽New和Delete分别是添加和删除某个员⼯的信息。然后下⾯的员⼯信息界⾯User Profile则是对员⼯信息的⼀个具体编辑和修正。
三.主要实现步骤
1.启动⽂件AppFacade.cs 作为PureMVC框架的⼊⼝⽂件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。