-
Notifications
You must be signed in to change notification settings - Fork 776
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2019-04-19:请谈谈你对 MVC 和 MVP 的理解? #33
Comments
最后一个字母不一样。 |
|
主要区别:区别在于MVP中 view层更独立,相比较mvc 解耦性更高 |
MVC对android来说 activity几乎承担了view层和controller层两种角色,并且和model层耦合严重,在逻辑复杂的界面维护起来很麻烦 |
MVC对于android来说就是看起来很清晰明了,数据层做了一定的封装,MVP对于android来说就是代码量加大 |
对于android开发来说,由于activity本身的定位问题,用mvc上,对于稍大的项目,不可避免的会导致业务逻辑与界面逻辑相互掺杂在activity中,使后期维护产生困难。 |
1.MVC
2.MVP
如果是前端开发的话还有MVVM和Flux,这里就不赘述了,可以参考这篇:https://0x9.me/05XTk |
如果做Android的话,我建议还是MVVM,不过现在谷歌提供的dataBinding有点蛋疼,每次修改布局还要重新rebuild下。期待有其他解决办法。 |
MVP架构可以去类比一个公司的组织架构,V层就像销售直接面对客户,P成就像产品和项目经理,M层就像开发人员。V层接收具体的事件交给相应的P产品和项目经理,P负责具体的控制分发交给M具体人员去处理。V与P ,P与M之间都有专门的沟通渠道来反馈彼此信息。 |
MVC架构将视图和数据进行分离,但是View既要与model(数据层)通信,也要与Controller(控制器)通信,既当爹又当妈,这样的话,随着项目较大时,维护改动的成本就会很高,因为它们之间耦合性比较高。所以MVP框架补了这个坑,在MVP里,View层与Presenter(主持层)进行通信,Persenter又与model层进行通信,这样当View变化的时候,Persenter就相当于一个中间人,负责将数据储存到model,也负责通知View层进行变化,这样就避免了View与model的直接接触。但在我们实际开发中,如果项目本身不是特别复杂,mvc更简单明了点。 |
原有的MVC模式中,Activity同时从Activity中view和controller的代码集合到一起会很臃肿,MVP,view从Activity抽出UI逻辑,P从Activity抽出业务逻辑,负责view和model的数据通信,实现view和model的分离。 |
大家认为的MVC 和 MVP区别MVP 是把控制器或者调度器给拆出来了 我认为
|
MVC 与 MVP 主要区别 本人也是菜鸟一枚,以下结合楼上各位大佬的讲解简单说一下: MVC M(Model) V(View)对应于我们的Layout, C(controller)控制层,相当于我们的activity or fragment 其实一直来android xml这个所谓的View层无法像vue中的html一样承载过多的逻辑操作;所以在mvc中,activity/fragment做为controller,既承担了view的页面显示功能,又承担了控制层控制逻辑的内容; MVP
|
MVC: MVP: MVVM: 选择: |
MVC:android天然的架构模式,但是activity可以直接引用model层,存在一定的耦合性。android的VC也区分不够明确 |
不管是MVC还是MVP模式都是为了解决项目中的高聚合和低耦合 |
这是来自QQ邮箱的假期自动回复邮件。
您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
这是来自QQ邮箱的假期自动回复邮件。
您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
这是来自QQ邮箱的假期自动回复邮件。
|
这是来自QQ邮箱的假期自动回复邮件。
您好,我最近正在休假中,无法亲自回复您的邮件。我将在假期结束后,尽快给您回复。
|
No description provided.
The text was updated successfully, but these errors were encountered: