APP的界面层的结构指的是平常所说的MVC、MVVM这些。
整个APP的话,一般用的还是3层结构:界面层、服务层、数据层。
标准的MVC

当Controller从Service得到新的数据后,把数据更新给View。注意,View是完全不知道Model的。
改良的MVC
这个ViewModel是指View的数据模型,跟MVVM的ViewModel是不一样的。只是为了把View需要的数据结构化。

MVP
Controller持有多个Presenter,每个Presenter相当于上面的MVC或改良的MVC。
这样做可以防止Controller过于臃肿,也可方便界面的模块组合,以及可能的复用。

MVVM
强调动态绑定,以使用KVOController为例。ViewModel把view需要的数据作为属性开放出来,view利用KVOController来监听这些属性。ViewModel的这些属性修改时,view的数据跟着改变。
