面试题Objective - C 底层

Objective - C 架构与设计模式

2020-04-11  本文已影响0人  爱玩游戏的iOS菜鸟

在学习设计模式与架构时,首先看看下面3个问题?

  1. 讲讲MVC、MVVM、MVP,以及你在项目里具体是怎么写的?
  2. 一般开始做一个项目,你的架构是如何思考的?
  3. 你自己用过哪些设计模式?

(一)何为架构?

常常听到的架构名词:
MVC、MVVM、MVP、VIPER、CDD...
三层架构、四层架构...

(二)MVC(Model - View - Controller)

Apple推荐的MVC模式
Apple推荐的MVC模式

优点:View、Model可重复利用,独立使用,相互不知道对方的存在,通过Controller作为桥梁建立联系
缺点:Controller过于臃肿

MVC的变种
MVC的变种-常用

优点:对Controller进行瘦身,将内部View的细节封装起来,外界不知道View的内部实现`
缺点:View依赖于Model

(三)MVP(Model - View - Presenter)

Model - View - Presenter

模式:通过Presenter作为中间桥梁,由Controller持有,并通过Presenter创建View,加载数据
优点:对Controller进一步瘦身,创建多个Presenter,每一块界面都有自己独立的界面及相关逻辑。

(四)MVVM(Model - View - ViewModel)

MVVM

模式:通过Presenter作为中间桥梁,由Controller持有,并通过Presenter创建View,加载数据。相对于MVP模式,通过双向绑定,对ViewModel中值的监听,更新View的值

常用的监听方案:Reactive Cocoa 、Foundation框架中的KVO、FaceBook的KVOController

(五)分层架构(三层架构、四层架构)

常见的三层架构,或将本地数据层单独作为一层为四层架构(也可根据需求来定义第四层)

设计模式

设计模式即为一套被反复使用、代码设计经验的总结,是一套比较成熟的编程思想,与语言无关。

优点:可重用代码、让代码更容易被他人理解、保证代码可靠性

设计模式的主要三大类

(1)创建型模式 — 对象实例化的模式,用于解耦对象的实例化过程
(2)结构型模式 — 把类或对象结合在一起形成一个更大的结构
(3)行为型模式 — 类或对象之间如何交互,及划分责任和算法
上一篇 下一篇

猜你喜欢

热点阅读