假设认为本文不错,请在csdn给个顶,github给个star.
移动app一般都是採用经典的mvc框架
总结:C对M:APIC对V:OutletV对C:Target-action,Delegate,DatasourceM对C:Notification。KVO
MVVM是在MVC的基础上多了一个ViewModel:表示逻辑,将model的数据转换为view能够呈现的东西.适合大量展示类的App
HierarchicalMVC,把client应用程序分解为有层次的父子关系的MVC,重复应用这个模式,形成结构化的client架构.适合重型B/S架构的WebApp.
一个MVC模块由应用程序的一个模块抽象而成.当中非常重要的一个概念就是ParentMVC,它能够相应界面上的实体,也能够是一个抽象的对象.设想一个app有标签栏,工具栏,导航栏,主工作区,相应到HMVC上就是这个app最底部的标签栏是Layer1,Layer2导航栏,主要工作区,工具栏.假设认为Layer2太复杂能够吧主要工作区放到Layer3,依次类推.
Controller是功能模块的总控室,它负责和子Controller或父Controller通信,并通知它的View处理改变界面显示,Model处理一些业务逻辑或数据库訪问操作.如才的样例里,点击了工具栏里的一个button,工具栏的Controller响应这个event,发现是要切换主工作区,工具栏做不了,就传递他的父Controller处理(假设父Controller也处理不了,就继续往上传递)然后标签栏的Controller处理切换主工作区.
长处:
我们在来看一下经典的三层架构
从上至下为
然后呢,我们如今的架构则是
在三层架构的基础上多了业务规则层,通常的三层是把业务逻辑和业务规则合并为一个层。统称为业务层.业务规则层的提出,既能够及时处理用户输入的不合法信息,又能够及时处理数据库错误,增大了业务逻辑层的结构清晰度,让业务逻辑人员专心致志做逻辑
引入service层的架构和普通的分层架构的不同是:service层内部有数据,能够单独执行.