MVC即Model - View -Controller,MVP即Model - View - Presenter,MVVM即Model - View - ViewModel,我们可以看出其实三者都差不多,都可看做是数据 - 视图 - 控制层,那么三者区别在哪里呢?
MVC其实就是Model处理数据,Controller负责处理逻辑将Model的数据发送给View,View负责更新显示数据;
MVP中是以Presenter为核心,而Presenter可以看出是Controller拆分成view+Presenter,view和View合并,Presenter将Api暴露给Controller调用实现Controller和view的联系来实现响应和数据更新,和MVC的区别就是view和controller之间的解耦,view和Presenter通过协议来实现。
MVVM就是将三者都解耦,实现双向绑定,通过观察者模式来实现,ViewModel监控view和Model,当Model数据更新时,通知view更新数据;
MVC、MVP、MVVM个人理解三者关系其实就是一个解耦的进阶,但是数据、视图和控制层之间的联系越少其实相对越复杂,越复杂的架构耦合度越小,但是开发速度越慢,所以我们在开发中应该更加自己项目需求选择合适的架构进行开发。
网友评论