浅谈MVVM模式

2018-05-03  本文已影响90人  聂掌柜

结合最近做的一个项目重构,谈一下自己对MVVM模式的理解。
简单介绍一下项目背景,这是一个基础组件--设置组件。


设置组件效果图.png

这些item项都是后台配置的,组件启动时,先加载缓存,然后异步读取配置的资源。

这个组件原本是按照传统MVC的模式来实现。造成了viewController特别厚重,业务逻辑耦合,代码复用率低等问题。如图:这个viewController已经有1300多行了。重构前的viewController主要负责的职责有:视图初始化,数据请求、解析,item项点击的回调block,登录登出的响应等等。因为设置的item项内容很多,包括 :分页,url地址,事件名,开关事件,组件跳转等等,所以viewController显得非常混乱。


代码目录结构图.png

根据数据绑定,职责划分,接口隔离等原则,对其进行重构。主要重构思路:将item项的点击事件代理出去,将数据请求、解析剥离出来给viewmodel来做。viewController只负责视图初始化和处理通知事件。


重构类图.png viewController通过KVO方式获取数据源的更新,做出相应的视图更新。 重构后目录结构.png

重构后,viewController的代码明显减少,整个组件的代码结构更加明确,职责分离。

上一篇 下一篇

猜你喜欢

热点阅读