在学习设计模式与架构时,首先看看下面3个问题?
- 讲讲MVC、MVVM、MVP,以及你在项目里具体是怎么写的?
- 一般开始做一个项目,你的架构是如何思考的?
- 你自己用过哪些设计模式?
(一)何为架构?
- 架构属于设计层面,是软件开发中的设计方案
- 小到类之间、模块之间,大到客户端与服务器端的关系,都属于架构的范畴
常常听到的架构名词:
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)行为型模式 — 类或对象之间如何交互,及划分责任和算法
- 观察者模式
- 命令模式
- 责任链模式
- ...
网友评论