MVC模式中业务抽离的方法

MVC模式中业务抽离的方法

导读:MVC模式的应用中,现在存在的一个普遍的问题就是用户图形界面GUI和业务逻辑的强耦合,导致在一个Activity中出现大量的业务代码,随着产品的迭代,Activity显得臃肿不堪,维护起来困难。本文将和大家分享如何将业务逻辑的代码从Activity中抽离,达到MVC模式的真正效果。


一、为什么要进行业务抽离

假如我们的Activity A和B都对数据data感兴趣,会根据数据data的改变进行GUI的修改,一般很多同学的做法就是在Activity中都写一个线程或者用封装的框架 AsyncTask,volley去获取网络数据d,对获取到的数据进行解析,得到Activity A和B想要的数据data,然后根据data对Activity进行GUI的修改,设想一下这样做的缺点有哪些。

第一:在Activity A和B中都需要写一份同样的获取网络数据的代码和解析数据的代码。

第二:假如要修改业务逻辑,需要找到所有的地方一一进行修改。

第三:V和C的耦合性太高。

有些同学可能会对获取网络数据和解析数据的方法进行一些二次封装,然后在Activity中调用的时候只需要简短的几句代码,这样比起之前虽然高明了,但还不是真正的MVC模式的初衷。MVC模式想要做的是让我们把用户图形界面GUI和业务逻辑进行分离,让GUI不必关心业务逻辑的实现,只需要关心它想要的数据就可以了,想要做到这一点,就必须进行业务抽离。

二、如何进行业务抽离

业务抽离的核心就是让GUI只去关心自己想要的数据,不必要关闭业务逻辑,所以我们首先要在V和C之间添加一个V关心的数据模型,我们知道业务层C就是一个数据的加工厂,它会将从网络获取到的数据加工成展示层V想要的数据模型,如此一来V和C的就进行了分离。

三、业务分离的关键点

业务分离之后,业务逻辑的代码就不在Activity中了,那么Activity中的控件如何知道自己感兴趣的数据是否发生改变呢,这个是业务分离的关键点,如果能解决好这个问题,那么业务分离也就成功了。也就是说当我们的业务层在接收到网络数据后,要如何通知到V我们的数据data发生了变化。我们可以用观察者模式来解决这个问题,不了解观察者模式的同学可以挫这里(通过Observer(观察者模式)来看Android的MVC ),让V作为一个观察者,实现ChangeListener接口,让添加的数据模型MyMoudle作为一个被观察者,里面持有观察者的实例,当数据模型中的value产生变化的时候就通知V改变对应的GUI,根据策略来showLine或者showCircle。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值