MVX

三层架构与MVX模式

  • MVX是一种设计模式,而三层架构则是一种架构思想,或者说是一种编写代码的纲领;
  • MVX可以认为是在三层架构下的一种具体的表现;
  • 三层架构分为:表现层,业务逻辑层,数据访问层;其中的数据访问层即Model概念区别于MVX模式的Model;
  • 三层架构中的Model表示对数据的访问的总代理,涉及了数据的增删改查操作,数据可以来自本地或者网络;
  • MVX模式下的Model就是一种纯粹的数据类,是一个数据实体的表现;

MVC、MVP

MVC和MVP最主要的区别在于M层和V层的沟通方式,MVC模式下,M、V两层能够直接进行沟通,而MVP模式下,
M、V两层只能通过P层进行沟通;

MVC:

传统的MVC模式下,V层通过C从M层中获取到数据,然后展示在V层上;

但是,大多数情况下,在拿到数据后我们需要对数据进行加工,此时不得不将逻辑编写在V层上,久而久之,V层就会变得臃肿;

还有一种情况,当我们操作了V层,通过C修改了M层,当M层在修改后,为了通知V层,M层不得不持有V层引用,因为C是单向的,M层无法通过C通知V层;

MVP:

MVP中的Presenter即能够解决V层业务代码臃肿问题,因为P中持有了V层的引用,直接在P中操作业务逻辑,然后将结果通知给V层(被动P模式,View元素操作完全由P进行。另一种主动P模式,在V层的数据操作还是在V层中进行,P层更多是起到沟通M层和V层数据的作用,这种模式下,V的臃肿并没有解决!);

MVP中的Presenter也解决了M层和V层数据沟通的问题,它双向持有了两层的引用,能直接操作两层数据进行交换和传输;