MVC设计模式

一、MVC

  • 什么是MVC(Model - View - Controller)设计模式?

    首先来了解一下, 一个程序页面它有什么 : 撇开表面上看到的种种, 可以把一个页面包含归为
    ①. 数据 — model层
    ②. 呈现方式 — view层
    ③. 数据与呈现方式之间的关系 — control层
    我们可以把这三者叫三个不同的职责。这三个职责可以应用在不同的思维层面上,比如系统架构上,软件架构设计上,程序设计上。只要我们从这三个角度来考虑,就是应用了MVC设计模式了。
    接下来看一段代码 :
    假设Controller View Model 分别如下

    M:Model(模型Model)
    V:ModelCell(自定义的 UITableViewCell, 用于展示数据)
    C:ViewController (控制器Controller)

控制器(ViewController) 代码如下

- (void) requestData {
      // 1.发起网络请求,获取到服务器的数据,并将其转化成模型数据(`model`)
      // 2.添加到数据源(`dataSource`)
      // 3.最后刷新表格`[self.tableView reloadData]`,配置`modelCell`
   }

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
       ModelCell *cell = [tableView dequeueReusableCellWithIdentifier:@"modelCell"];
       cell.models = self.dataSource[indexPath.row];
       return cell;
   }

View(ModelCell)代码实现

ModelCell.h
@class Model;
@interface SUGoodsCell : UITableViewCell
@property (nonatomic, strong) Model *model;
@end

ModelCell.m
@implementation ModelCell
 - (void)setModel:(Model *)model {
     _model = model
     /// config data ....
}
@end

  • MVC有什么缺点

    1. 厚重的controller层 : 虽然使用MVC已经尽量的把view model controller进行了分离, 但是还是无法避免controller的
                            臃肿
    2. 无处安放的网络逻辑  :  因为网络调用应该使用异步, 大多时候都是将网络逻辑写在了Controller层,这也是导致
                            Controller层比较厚重的原因
    

MVC 虽然只有三层,但是它并没有限制你只能有三层。所以,我们可以将 Controller 里面过于臃肿的逻辑抽取出来,形成新的可复用模块或架构层次。
例如 : 把Controller中公共的逻辑统一使用一个基类进行处理,对一些重复的代码进行代码抽取处理等等,这样可以使得代码结构看起来更加清晰,也完成了瘦身。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值