关于LuaFramework中的MVC框架

LuaFramework中的MVC框架基本从SimpleFramework移植过来的,只是做了部分调整,更加简化,清晰了,很多人觉得用它干嘛?用Manager干嘛?搞的好复杂啊,违反了Unity基于组件的设计思想。

嗯~怎么说呢,这个事情没有谁的观点是百分百对的,至于当时SimpleFamework集成PureMVC的过程,我在http://doc.ulua.org/default.asp?cateID=4 里面做了详细的介绍。你可以有自己观点,这个很正常,但是我也说下我的观点,在SimpleFramework集成PMVC之前,是以前游戏的一直io方式,就是所有管理器、处理器都通过全项目同一个入口io静态类来互相引用。被妈的狗血临头,具体我就不说了,面对着强大的压力,我花一星期调研,70%的人用的PMVC,还有不用的,还有别的框架,还有自己公司的,我选择大多数的PMVC,

集成的PMVC后,还是有人骂不好,那 骂不好的,基本觉得为啥搞这么复杂?因此我在2群跟3群里跟几个人还大吵过2-3次吧,但是比集成之前骂的人明显少之又少了,我觉得这就是进步啦。

问:为啥框架需要有Manager层呢?用一个基于MonoBehaviour类的子类不就够了吗?
答:Manager层在一个框架里面是功能模块(非逻辑功能)的集中体,它的功能比较单一,比如声音、Lua、资源管理、UI管理等等。我见过的框架几乎都存在Manager层,它是不依赖于逻辑层的单一功能层,也是lua代码跟unity引擎直接的粘合层。很多lua不方便直接调用的原生功能,通过他们实现。

问:为啥框架需要有Ctrl层呢?用一个基于MonoBehaviour类的子类不就够了吗?
答:基于MonoBehaviour类的子类遵从与Unity里面GameObject的生命周期,从Awake出生到OnDestroy结束,其实有些情况在这里面没办法处理,他们更像是一个个单独的对象,但是对象的管理,就需要一个Ctrl逻辑类来管理了。

Assets/LuaFramework/Scripts/Framework目录为PMVC简化版框架,之前SimpleFramework还是较完整的,里面基本就是框架消息通知的功能。以前XXXManager类都是基于View的,有同学觉得不合适,这次有个改动是,新增加了Core/Manager.cs类,这个类跟View.cs类都继承自于Base.cs,这样任何的View层跟Manager子类都可以使用相同的众多管理器功能了。

众多的管理器被设计为在框架的任意地方都可以直接访问,而不是通过一个单例到处引用,这样也增加很多废代码,它是为框架服务的功能基础层。

如果一个小游戏,真的没必要搞的这么复杂,但是,如果你们项目是大型的网游,mvc的架构方式还是非常有必要的,并非累赘,否则前面开发简单爽了,后期就会被同事喷的狗血临头,因为多人协作还是有一种规范是最好的。这个没啥好讨论的,你不喜欢你可以直接用tolua单纯的纯净版。如果你没有合适的框架,那就拿LuaFramework凑合下,有总比没有强吧,那如果你是大公司有完善的框架结构,也没必要非用它,那它就是个比较完善的参考DEMO,没啥好纠结的。

[本日志由 admin 于 2016-03-20 01:57 PM 更新]
上一篇: LuaFramework的简单介绍
下一篇: 关于LuaFramework中的LuaManager.cs类
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭