1、讲讲MVC、MVVM、MVP,以及你在项目里具体怎么写的?
2、你自己用过哪些设计模式?
3、一般开始做一个项目,你的架构是如何思考的?
一、何为架构?
- 软件开发中的设计方案
- 类与类至今的关系、模块与模块之间的关系,客户端与服务端的关系
- 经常听到的架构名字
MVC/MVP/MVVM/ Viper/CDD
三层架构、四层架构
二、MVC - apple版
controller 持有视图view!
view 可以通知 Controller进行操作!
controller 负责处理数据并设置给view
好处
- view、model可以重复利用
缺点 - Controller的代码过于臃肿!
三、MVC变种
控制器处理view事件
视图可以拥有模型,负责模型数据设置等相关操作
好处
- 控制器瘦身,将view内部的细节封装起来,外界不知道。
缺点 - view依赖于model
四、MVP
model - presenter[代替控制器的操作] - view
presenter 提供入口方法
持有控制器
内部创建视图,并添加给控制器
负责所有业务逻辑处理
五、MVVM模式
model 数据
view 视图
viewModel 视图模型,负责业务逻辑处理
六、三层、四层架构
三层架构
- 应用层/界面层【控制器、view等】 -> 业务层【登录、商品列表加载等功能】 -> 数据层【本地数据库、网络】
- 项目
- 界面层 控制器、view
- 业务层 负责业务逻辑处理
- 数据层 负责数据从本地加载或者从网络加载
四层架构
- 界面层 -> 业务层 -> 网络层 -> 本地数据层
七、架构设计-设计模式
Design Pattern
一套被反复使用,代码设计经验的总结
好处:可重用代码、让代码更容易被他人理解,保证代码可靠性
一版与编程语言无关,是一套比较成熟的编程思想
设计模式可以分为三大类
-
创建型模式:对象实例化的模式、用于解耦人对象的实例化过程
单例模式、工厂方法模式,等等 -
结构型模式:把类或对象结合在一起形成一个更大的结构
代理模式、适配器模式、组合模式、装饰模式,等等 -
行为型模式:类或对象之间如何交互,及责任划分和算法
观察者模式、命令模式、责任链模式,等等
网友评论