android 目前是 mvc,mvp,mvvm 哪种模式比较好呢?

Android · light_star · 于 发布 · 最后由 twiceyuan回复 · 3710 次阅读
1048

mvc简单也熟悉,但是mvc不解耦,view和逻辑混杂在一起。
mvp虽说解耦了,但是接口文件好多,找个东西也好费劲。
mvvm尚且不是很熟悉

大神们,你们怎么看?群主来回答下,各自的利弊以及你们现在项目中用的是什么开发模式,到底哪个更适合商业项目和开发。

共收到 20 条回复
96
stuhua · #1 ·

肯定是mvvm

你可以去了解一下三个的架构,其实都是进一步的高内聚、低耦合。
而且mvvm 它是双向绑定

301

楼主,你可以去详细了解一下三个模式具体实现。至于说哪个模式更好,不是模式的优势,而是根据具体的项目需求,举个例子:微信最初开发人员只有两个,所以最初的项目根本谈不上什么模式,但是后面随着产品的壮大和开发人员的增加,微信项目的架构也发生了很大的变化。所以明白我想表达的了吗?模式和架构的确很重要,而且开发的成本也很高,如果你有足够的时间和人员去先搭建模式和架构的事,或者到了那个阶段不得不考虑模式和架构了,那可以根据项目、团队、产品选择适合自己的模式和架构。所以模式的选择不是根据模式的谁有谁劣,而是根据项目、团队、产品等很多因素决定的。建议只有一两人的团队还是选择自己熟悉的方式去开发。

96

同意楼上说的,不如问什么样的架构叫好架构.好架构永远不可能只有一种,但是好架构之所以被称作好他们特点肯定都有相似之处。非要我说,其实我不认为MVVM多好

96

目前项目中使用MVP+MVVM混合使用。MVVM使用Databinding,ViewModel原则上只处理与View相关的逻辑,如果需要调用其他Model则通过MVP中的Presenter层。MVPVM虽然会需要写很多类,我的解决方法是写一个MVP的代码模版,直接一键生成啰嗦代码,剩下的只关注关键代码就好了。

96

我觉得我公司现在的基于rxjava+retrofit的mvc架构就挺棒的,代码写起来简洁,优雅,封装性,扩展都还不错,代码量也不大.我们的这种算是中小型项目吧,协作开发的时候对个人能力的要求也挺高的,因为每个成员都可能修改到所有的源文件,需要成员技术素养较高,对这种简洁开发认可.一切都是为了使逻辑清晰,代码简洁,代码量小

96

比较看好MVP,Google sample 都出了,应该比较靠谱,试用了下 感觉不错
https://github.com/googlesamples/android-architecture

96

使用过mvp,当时也是觉得接口多,后来结合rxandroid,能减少一些接口。。

30

支持一下 @jucongyuan 童鞋的说法,也赞成去看 @lavenderblue 童鞋提供的Google MVP资料,我自己本身开发中也采用 MVP 的结构,其实不管哪种结构都有利弊,关键是自己根据业务选择合适的。希望不会被吐槽说了等于没说,哈哈哈!

1048

#4楼 @keyu404 可否借鉴模板学习下,我也正想写个模板,不知道如何下手

1048

#9楼 @jucongyuan 谢谢,说的很有道理,就是现在想写一个好用方便快捷的项目模板,新项目来了可以拿来直接开发,正在考虑使用什么模式

1048

#7楼 @liangsaifei 恩,我也正在学常识使用retrofit和rx,试了一下果然很好使用

1048

#5楼 @xingstarx 恩,我也开始使用这个了,下个项目尝试下

1048

#1楼 @stuhua mvvm现在貌似使用还没那么普及,先用用mvp吧

301

#11楼 @light_star 可以看一下Google的DataBinding,是一大神器,不过新技术层数不穷,还是那句话,选择适合自己的!

96

呵呵 扑哧一笑 不想开炮

96

目前是参考google的MVP项目在公司项目中采用的MVP架构,接口文件不多

1311
mansoul · #18 ·

MVP用起来是很好,但是还是要具体情况具体分析,选择合适的才是最好的!

96

不要过分的追求架构,适合才是最好的。

53

我感觉虽然 MVP 被唱衰很久,但是真实情况还是用 MVP 的要比 MVVM 的要多。

Google 的示例项目中也有种 MVP 的写法是写一个 Contract 类,Presenter 和 View 接口作为其内部类(接口)。算是传统 MVP 文件太多的一种补救方案吧

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册