1.MVC, MVP, MVVM
这些都是架构的演变,按照MVC->MVP->MVVM,变化方向是让View能适应不断的变化,而Model尽量保持不变。
业务在Model中。由于网站的三层设计和这个有点混淆,网站三层设计UI、BLL、DAO,对应关系是UI(View+Controller), BLL+DAO(Model)。在DDD的设计中,核心业务也是在Model中,下面的DAO是支撑服务。中台设计中,业务是一个个核心微服务,DAO是支撑服务(PASS),实际存储是IASS。这些划分是按照不同的方面划分的,有联系但是不是同一个东西。
未来的架构是微服务或者是Service Mesh,都是一个目的:功能服务化,更加有弹性。
1.1 MVC
Model,View,Controller,虽然实现了分离,但是不够明确,View可以读取Model让View包含了一部分业务,耦合不够松散。

1.2 MVP
对MVC做出了一些改进,让View不可以访问Model,而是通过Presenter来通信。缺点是Presenter和View的耦合关系,Presenter需要控制View的渲染。
1.3 MVVM
在MVP的基础上,让Presenter变成了VM(View-Model),核心是让View<->和ViewMode绑定了,隐藏了View的UI更新细节和ViewModel的值设置细节。
代表: WPF, Angular, React(一般不是双向绑定,而是单向绑定), Vue。
在选择架构的时候,不一定要照搬,而是要按照需求,技术,业务场景进行衡量。
比如Android为什么要用MVP,而不用MVC?那是因为Activity中不能写太多业务代码,不然维护困难。
https://blog.csdn.net/lmj623565791/article/details/46596109
https://www.cnblogs.com/xishuai/p/microservices-and-service-mesh.html