UI_设计模式_MVC

设计模式分为三种类型,共23种。

  • 创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。
  • 结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
  • 行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。

MVC:框架级设计模式

M:Model用于建立数据模型(即数据的结构)(存储、处理数据,为应用程序提供数据)

V:View展示数据(我们看到的所有控件都是View)(展示用户界面视图,提供用户交互,展示模型提供的数据)

C:control控制M和V的通信 (控制视图显示,处理用户交互,从模型中获取数据展示在视图上,目的是解除模型和视图之间的耦合)

C和V通信

  1.  C直接控制V。例如:在Controller中创建一个UIButton
  2. V向C发起通信的方式:
    1. 设置View的target/action,例如设置UIButton的target/action
    2. 设置delegate,例如设置UITextField、UIAlertView代理。
    3. 设置dataSource,例如设置UITableView的dataSource
  3. C负责处理V产生的事件 

C和M通信

    1.  C向M提出需求,直接使用M提供的数据
    2. M向C发起通信方式:KVO、通知(notify),可以在M发生变化时通知C 
    3.  C负责读取M提供的数据,负责监控M的变化并进行处理

V和M通信 

    1.  V和M禁止通信
    2. C负责M和V之间的通信,C从M获取数据,将数据显示在View上 

MVC的优势

    1. 实现低耦合,减少视图和控制器之间复杂冗余的代码
    2. 提高重用性,多个视图可以共享一个模型,多个控制器可以共享一个视图
    3. 更易于维护,M、V、C独立,可以分别处理不同的变化


M通过KVO和通知与C进行通

 

 

 

 

 

 

 

 

 

 

 

 


 

posted @ 2015-04-11 14:41  captivity  阅读(587)  评论(0)    收藏  举报