现在的位置: 首页 > 综合 > 正文

数据驱动之美

2018年06月10日 ⁄ 综合 ⁄ 共 731字 ⁄ 字号 评论关闭

腾讯山寨了世界,我只需要山寨腾讯就够了。

只是一个简单的界面,梳理一下MVVMLight和数据驱动那点事。

MVVM设计模式,应该说是数据驱动驱动出来的,利用这种设计模式,能够更容易的将数据驱动进行到底。

两者本就是相辅相成,共生关系才对。

View层尽可能少的逻辑处理,专注于界面UI那点事;

ViewModel层最可能多的处理一切业务逻辑,用例流程,最主要的事情还有驱动界面的变化;

MVVMLight最核心最有价值的地方,就在于

Messenger.Default.Register<int>(this, "Login",async (msg) =>{ });

只需要在View层的构造函数里,注册消息就够了。一般主要是 界面导航,被驱动的不能直接绑定的Ui改变。。。

这个创举,成功的分离后台线程和Ui线程。

可以让我们告别ThreadPool.RunAsync();以及Dispatcher.RunAsync();这种复杂的后台线程和Ui线程之间的不断变换。

良好的MVVM开发代码,就应该是这样的。如果代码里面,有坏味道,没能将业务或逻辑分离到ViewModel层,那肯定就是

数据驱动的理念还没有实现好。

具体的实现方式,不是主角。直接来看一个数据驱动与实践驱动的对比。

这里的自动登陆和记住密码,有这样一种逻辑关系。

点选了“自动登陆”,必然要自动选择 ”记住密码“;取消了记住密码,那必须不可能自动登陆了。

如果是在Winfrom的事件驱动下,必然是再两个CheckBox的Checked事件里,做判断,更改另一个的状态。

如果是数据驱动呢?

只需要在属性设置里,做一次判断。省去了两次为事件附加事件处理程序。



还有东西,写不出来,说不清楚。还需要继续精通技术,和提高代码量才有可能下笔如有神。

【上篇】
【下篇】

抱歉!评论已关闭.