ZK MVP与MVVM简析

一、MVP(Model-View-Presenter)设计模式

用例:实现页面上点击一个按钮,然后呈现Model层返回的消息”HelloWorld”

作用过程:

①用户在屏幕上点击按钮(一个动作action),一个通信事件就被触发。

②后台的事件监听器(event listener)处理这个事件(event)。

③访问数据库(access data)并返回

④用户界面元素(UI element)被改变,相应的把视觉反馈(visual feedback)呈现给用户


二、MVVM(Model-View-ViewModel)设计模式


作用过程:

①用户在屏幕上点击按钮(action)触发一个事件(event)

②绑定器(Binder)感知到相应的事件(corresponding event)被触发

③绑定器(Binder)在ViewModel中找到相应的动作逻辑(action logic)并调用它

④动作逻辑(action logic)从Model层访问数据库(accessdata),并更新ViewModel中相应的属性

⑤ViewModel通知(notify chnage)绑定器(Binder) 一些属性被改变

⑥每当有属性被改变,绑定器(Binder)就会从ViewModel中加载数据(loaddata)

⑦绑定器(Binder)改变相应的UI组件来给用户呈现视觉反馈(visual feedback)

很明显,UI设计者必须至少告诉绑定器(Binder)以下几点:

◆    用到了哪些UI事件(UI event)来触发哪些动作逻辑(action logic)。(这样Binder才知道调用什么方法)

◆    用到了哪些UI属性(UI attribute)来显示哪些数据。(这样Binder才知道加载什么数据,更新什么数据)

◆    用到的哪些UI属性(UI attribute)是用来输入到数据库的。(这样Binder才知道要保存哪些属性)


在ZK绑定(ZK Bind)中用到了ZK注解(annotation)来做这些工作

①当用户按下了”Show”按钮,onClickevent就被触发到了Binder

②ZK Binder通过指定的ZK 注解 @command('showHello')在ViewModel中找到命令的名字(commandname)为showHello的方法。

③Binder在HelloViewModel.java中调用showHello()方法,并且改变message的属性值为”HelloWorld”。

④因为NotifyChange,所以Binder通过调用HelloWorldModel.java的getMessage()方法从vm.message中加载数据,并改变标签label的属性值。

最后”Hello World!”就呈现到了客户端用户




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值