一、MVC:
Models - 负责主要的数据或者操作数据的数据访问层,可以想象Person和PersonDataProvider类;
Views - 负责展示层(GUI),对于iOS环境可以联想一下以UI开头的所有类;
Controller/Presenter - 负责协调Model和View,通常根据用户在View上的动作在Model上做出对应的更改,同时将更改的信息返回到View上。
好处:
1)更好的理解他们之间的关系;
2)复用(尤其是对于View和MOdel);
3)独立的测试;
4)易用,与其他几种模式相比,较小的代码量,熟悉的人很多,因而即使对于经验不那么丰富的开发者来讲维护起来也较为容易。
不足:
1)任务均摊 - View和Model确实是分开的,但是View和Controller却是紧密耦合的;
2)可测试性 - 由于糟糕的分散性,只能对Model进行测试;
二、MVP
三、MVVM