TouchGFX用户界面遵循称为模型视图展示者(MVP)的体系结构模式,该模型是模型视图控制器(MVC)模式的派生。两者都广泛用于构建用户界面应用程序。
MVP模式的主要好处是:
- 关注点分离:将您的代码分为几个部分,每个部分都有自己的责任。这使代码更简单,更可重用且更易于维护。
- 单元测试:由于UI的逻辑(演示者)与可视层(视图)是分开的,因此独立测试这些部分要容易得多。
在MVP中,三个类的定义如下:
- model 是定义要在用户界面中显示或作用的数据的界面。
- view是一个被动界面,该界面显示数据(来自模型)并将用户命令(事件)路由到演示者以对该数据进行操作。
- presenter 作用在模型和视图。它从存储库(模型)中检索数据,并将其格式化以在视图中显示。
-
在TouchGFX中,与应用程序的非UI部分(这里称为后端系统)的通信是通过Model类完成的。后端系统是一个软件组件,既可以从UI接收事件,也可以将事件馈入UI,例如来自传感器的新测量。后端系统可以作为单独的任务在同一MCU上,在单独的处理器,云模块或其他设备上运行。从TouchGFX的角度来看,这并不重要,只要它是可以与之通信的组件即可。TouchGFX不管理所使用的特定通信协议。它只是提供了一个功能,每次TouchGFX滴答都会调用一次,可以处理所需的通讯wen
-
文件类型与属性
MyScreenViewBase
,FrontendApplicationBase
并且FrontendHeapBase
位于生成的空间中,表示:- 只要在TouchGFX Designer中进行更改,它们就会重新生成
- 用户不应手动编辑这些类
MyScreenView
,MyScreenPresenter
,FrontendApplication
并FrontendHeap
在用户代码空间中创建的,这意味着:- 当在TouchGFX Designer中进行更改时,这些不会重新生成
- 用户可以在此处自由添加自定义代码
- 的所有的设置
box1
和button1
在生成的视图基类完成MyScreenViewBase
。 - 屏幕之间转换的所有功能都在生成的应用程序基类中
FrontendApplicationBase
。 - 所有的簿记工作(确保分配了适当数量的内存)都位于生成的堆基类中
FrontendHeapBase
。
用户可以自由编辑用户代码类。例如,您可以添加更多小部件。现在,我们将只实现setRandomColor
实际更改的颜色的功能box1
。