你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 TouchGFX经验分享(八)

[复制链接]
STMCU小助手 发布时间:2023-3-4 20:00
MVP
7 z; o5 J5 ~" ATouchGFX用户界面遵循称为模型视图展示者(MVP)的体系结构模式,该模型是模型视图控制器(MVC)模式的派生。两者都广泛用于构建用户界面应用程序。# s1 {4 w. H8 `1 K* m, O
model 是定义要在用户界面中显示或作用的数据的界面。$ R9 m9 l; g  ?; U/ n) r
view 是一个被动界面,用于显示数据(来自model )并将用户命令(event)路由到演示者以对该数据进行操作。
, S6 z, n; I$ D6 Spresenter作用在模型和视图。它从存储库(model )中检索数据,并将其格式化以显示在视图中。
3 z7 F* k7 w6 H+ }9 I7 u8 @5 {7 k% G0 s3 L% Q, ]# X: T$ t. a4 H
20200901175904943.png % [; ^/ Q2 u9 ^3 o* g/ w

. b/ e+ p  I' J$ f0 C什么时候会使用MVP模式
8 [/ {% x; S* l使用MVP模式总共有两种情况:; X3 n4 j1 d% D+ e5 k7 s" L6 E$ Y) w
当使用多个界面时,这些界面都会进行数据交互。交互的数据将采用view到presenter再到model存入model类中,之后其他view需要数据时,将数据再从model到presenter再到view进行显示出来。MVP模式意味着一个Model统一给多个Presenter和多个View提供数据。
' e6 i/ [! Y$ X5 c# s在TouchGFX中,与应用程序的非UI部分(这里称为后端系统)的通信是通过Model类完成的。后端系统是一个软件组件,既可以从UI接收事件,也可以将事件馈入UI,例如来自传感器的新测量。后端系统可以作为单独的任务在同一MCU上,在单独的处理器,云模块或其他设备上运行。从TouchGFX的角度来看,这并不重要,只要它是可以与之通信的组件即可。+ E4 ^* Z3 p3 P( d7 X" r8 N+ ]

  R4 E. M5 i5 G
20200901180752556.png - t( F- b& V. y: [3 w$ V

* o% w2 y# M8 o4 y4 y- K. Y

: n6 c" l" F: ?$ B如何使用MVP模式
( b" p$ s: X. E/ \% o, f& {在文件结构上存在这model.cpp文件,而Presenter和View是每个页面都有一组。具体开发方式参考其他的文档。
4 C5 ~) g0 {- G5 W% {, C% J. R+ E3 U& e) J/ m) J; _. Q; P0 d

( K' v* D% B- X使用MVP模式注意事项
# u! L; p3 A! A$ B/ q大多数使用MVP模式开发过程中都是为了满足页面交互时可以保留数据,也是为了满足将数据从底层拿到UI上进行显示和处理,最好的使用方法是在Model层保存数据,view层显示数据,不要在view层保存数据。这种保存数据的原因是因为页面在迁移时会释放相应页面的类,但是Model层的类不会进行释放,所以选择Model层来保存数据。除此之外,对于touchgfx和后台其他程序进行交互时,最好采用消息队列方式进行解耦,这样可以保证View显示的数据不会因为后台数据越界或其他操作导致UI崩溃。- u5 \2 w0 {& \
————————————————% |0 t& p6 |% L& \% u: ]4 }# Q
版权声明:空闲的程序员
" q* X  M7 O, c* ^# G7 y! v4 ^0 G0 ?9 U8 o, \$ t6 K: v( Y0 G
赞 收藏 评论0 发布时间:2023-3-4 20:00

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版