iOS-面试题6-架构

2020-09-25  本文已影响0人  Imkata

目录:

  1. MVC-Apple
  2. MVC-变种
  3. MVP
  4. MVVM
  5. 分层设计
  6. 架构与设计模式的区别

一. MVC-Apple

MVC-Apple.png

TableView就是苹果版MVC的代表。

优点:View、Model可以重复利用,可以独立使用
缺点:Controller的代码过于臃肿

二. MVC-变种

MVC变种之后最大的区别就是View是可以拥有模型的。

MVC-变种.png

优点:对Controller进行瘦身,将View内部的细节封装起来了,外界不知道View内部的具体实现。
缺点:View依赖于Model,不能独立使用(也不一定是坏事)。

三. MVP

MVP就相当于用P代替了MVC-Apple的C,而且Model和View之间也是没有任何关联的。

MVP.png

四. MVVM

MVVM.png

乍一看,MVVM和MVP有点像,它们的共同点就是MVVM也把View和Model的一些业务逻辑扔到VM里面,不会扔到控制器里面。不同点就是属性监听绑定的问题,View拥有ViewModel并监听ViewModel里面属性的改变,当属性改变时会更新View。

分层设计

上面我们说的MVC、MVP、MVVM其实都是界面层的东西,再大一点就是分层设计了。

分层设计.png

架构与设计模式的区别

架构一般比设计模式大,比如整个应用程序分为多少层架构,比如将类分成很多角色(M、V、C、P、VM等等)这些都是架构层面的问题。分层之后每一层肯定好多类,那么这么多类怎么组织起来呢?就可以使用设计模式 。

iOS中主要使用单例模式工厂方法模式代理模式观察者模式

博客地址:iOS-架构

上一篇下一篇

猜你喜欢

热点阅读