Pure MVC 架构简述

Pure MVC 架构简述

在这里插入图片描述

前言

游戏UI开发中,常常使用MVC架构(Model数据、View界面、Controller控制)。这个架构方便解耦数据、界面和交互逻辑。一般来说V可以持有M,C可以持有V和M。普通的MVC写法,容易把逻辑都写到C里,导致C无限制膨胀,逻辑也不好复用。

Model

一个界面,拥有一个Model类型的单例。这个Model是持有了多个Proxy。每个Proxy都对应了一类数据,并且提供了这访问、修改这些数据的方法。可以说Proxy是数据核心逻辑的处理地。同时Proxy可以注册一些消息。

View

一个界面,也只拥有一个View类型的单例。这个单例持有了一系列 Mediator 和 Observer 。Mediator 是具体操作UI组件的类,包括:添加事件监听、发送或接收 Notification,以及直接操作UI组件的状态。Observer 就是用来接收 Mediator 注册的消息,总体来说是为 Mediator 服务的。

Controller

同样,一个界面,也只拥有一个Controller类型的单例。Controller 持有了所有Command,Command是一个被封装成对象的“行为”。Command的执行是通过发送Notification通知操作的。Command 对象是无状态的;只有在需要的时候( Controller 收到相应的Notification)才会被创建,并且在被执行(调用 execute 方法)之后就会被删除。

Facade

Facade,作为这MVC三者的门面,主要负责访问和通知Model、Viiew 和 Controller。也提供发送消息的接口。

总结

Pure MVC的主要调用方法,总结如下:

  1. Proxy 不持有其他类型的引用,只会注册消息。可以发送消息。
  2. Mediator 可以持有 Proxy 的引用,可以发送消息。
  3. Command 可以获取 Proxy 和 Mediator 对象并与之交互,也可以发送消息。

对于数据的核心逻辑,应该放在Proxy 中做。界面元素的操作应该放在Mediator 中做。而大量的业务逻辑,应该放在Command中做。虽然Mediator里也可以到,但是建议放在Command中,这样Command可以被View的其它部分重用。比起普通的MVC,Pure MVC在C这一部分的改动比较大,增加了C的代码复用度。

参考

  1. Pure MVC
  2. puremvc-csharp-demo-silverlight-employeeadmin
  3. PureMVC框架在Unity中的应用(一)
  4. PureMVC框架在Unity中的应用(二)
  5. PureMVC (Unity游戏框架入门学习首选) 个人理解学习详细笔记
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值