UI框架与MVC模式详解(3)——MVC\MVP\MVVM

【PDI模式】

前文中,我们详细讲解了为实现一个涉及UI的功能所必须得三者,简称PDI:

  • Panel类:主要实现交互逻辑、显示逻辑的地方以及保存界面相关的数据的地方
  • Data类:数据管理类,主要是业务相关的数据
  • Inter类:Panel类和Data类之间数据联通的中间者

根据功能的复杂程度来决定这三者是拆开还是合在一块。功能简单的情况下,直接一个Panel类搞定,复杂时要拆开成三个。

如果要实现ABCDE五个复杂的功能,那我们是不是一共需要15个类?

这要看五个功能的业务相关性,业务相关性越高所需的Data类和Inter类越少,也就是我们前文所说的多个Panel类的数据可能来自同一个Data类。

根据这个可以看到游戏开发和互联网开发的一个重要的不同地方:

游戏开发中绝大部分业务数据都在客户端中,数据几乎以标准的树状图呈现,一般一个或多个Panel类的数据来自一个Data类

互联网开发中绝大部分业务数据都在服务端中,数据分布在不同根的树中,一般一个或多个Panel类中的数据来自多个Data类

后者在界面的开发上会复杂一些,因为多了些数据异步获取的情况,但遵循前文所说的方式,都能顺利解决。

【MVC】

MVC指的是模型Model、视图View、控制器Controller,他们的关系图如下:

View从Model中Get数据,Model数据变化时通知View,用户与界面的操作产生Action被发到Controller,Controller处理后将操作更新到Model和View,两者再做各自的处理。

那么能说PDI和MVC的对应关系为Model是Data、View是Panel、Controller是Inter吗?

这两者不是一回事。

MVC是整个UI框架层级上的模式,PDI是在已有的UI框架模式下(不一定是MVC)的具体功能上的模式,他们的核心都是实现逻辑和数据的分离。

我们将从以下几个方面区别:

交互

以屏幕为输入设备的基础交互只有点击和移动,结合UI组件,可以拓展出双击、长按、拖拽、多指点击等更为丰富的交互操作。

输入设备还有鼠标、键盘、手柄等,每种输入设备都有基础的交互事件

一般来说,输入设备会将基础交互事件传递给操作系统,操作系统将其传递给应用程序,应用程序自己处理基础交互。

视图

我们可以将常用的一系列逻辑分离出来做组件化形成基础的UI组件(即View组件),这些组件是:文本Text、图像Image、按钮Button

由这些基础组件可以拓展形成常用组件,包括:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值