美文网首页
iOS-面试题6-架构

iOS-面试题6-架构

作者: Imkata | 来源:发表于2020-09-25 09:42 被阅读0次

    目录:

    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等等)这些都是架构层面的问题。分层之后每一层肯定好多类,那么这么多类怎么组织起来呢?就可以使用设计模式 。

    • 设计模式(Design Pattern)是一套被反复使用、代码设计经验的总结,也是处理类与类之间的关系,但是它比较小,没有架构那么大。
    • 使用设计模式的好处是:可重用代码、让代码更容易被他人理解、保证代码可靠性,一般与编程语言无关,是一套比较成熟的编程思想。

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

    博客地址:iOS-架构

    相关文章

      网友评论

          本文标题:iOS-面试题6-架构

          本文链接:https://www.haomeiwen.com/subject/wmbxuktx.html