Android架构设计---MVP MVC MVVM

1、说说MVP和MVVM的特点 

MVP:主要是分离了M层和V层的代码,通过P层来建立他们的关联,实现M层和V层的解耦。缺点就是每增加一个功能,需要增加相应的接口回调。没办法,MVP的核心就是通过接口实现隔离,将相关的业务层交给了P层。

如果要细说mvp需要注意几点:

p层的逻辑处理单一的功能,不要融合一个模块下的增删改查的整个功能。

由于p层持有了v层的引用,通常在p层使用弱引用来持有view层实例,在p层销毁的时候需要将v层的引用销毁掉。

契合类指的p层和v层的接口类放在一个contract接口类中,契合类方便管理业务层的功能,将单个功能放到一个contract契合类中。比如我们有一个添加书架的功能 

 MVVM:主要是用到了观察者模式,通过数据的改变来通知相应的View改变的过程。M层和上面的MVP中的M层是一样的,都是网络请求+数据缓存来实现该层的,里面的双V,一个指的ViewModel实现的,另外一个AndroidDataBinding实现V层,ViewModel层获取到M层的数据后,通过观察者模式通知AndroidDataBinding在UI上的改变。缺点的话,只能吐糟下AndroidDataBinding了,在xml中写逻辑的时候,一点提示代码都没有,感觉完全是在写js似的,可读性肯定对于初级的来说还是有点难看懂的。 

 2、模块化、插件话、组件化等分别有什么区别,对用有什么好处

 3、说说MV * 模式,并画出做过项目的架构图

 4、对跨平台方案有哪些了解,使用过哪些? 比如RN

 5、对大前端有什么看法,了解多少?使用过什么?

6,谈MVC ,MVP,MVVM

MVC:View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些 业务逻辑。 在MVC模型里,更关注的Model的不变,而同时有多个对Model的不同显示,及View。所以,在MVC模型里,Model不依赖于View,但是 View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。
MVP:MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示。作为一种新的模式,MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会从直接Model中读取数据而不是通过 Controller。
MVVM:数据双向绑定,通过数据驱动UI,M提供数据,V视图,VM即数据驱动层



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸福在路上wellbeing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值