zoukankan      html  css  js  c++  java
  • 设计模式(观察者模式,MVC模式)

    1.观察者模式

    观察者模式也叫发布/订阅(Publish/Subscribe)模式,是MVC(模型-视图-控制器)模式的重要组成部分

    观察者模式的具体应用有两个---通知机制和KVO(Key-Value-Observing)机制

    1.1 通知机制

      通知机制与委托机制不同的是,前者是“一对多”的对象之间的通信,后者是“一对一”的对象之间的通信。

      通知主要有广播通知、本地通知和推送通知

      广播通知是Cocoa Touch框架中实现观察者模式的一种机制,它可以在一个应用内部的多个对象之间发生消息;本地通知和推送通知中“通知”是给用户一种“提示”,它的“提示”方式有警告对话框、发出声音、振动和在应用图标上显示数字等。本地通知由本地iOS发出,推送通知由三方程序发送给苹果的远程服务器,再由远程服务器推送给iOS的特定应用。

    1.2 KVO机制

      KVO不像通知机制那样通过一个通知中心通知所有观察者对象,而是在对象属性变化时通知会被直接发送给观察者对象

    2 MVC模式

      MVC模式是一种复合设计模式,由“观察者”模式,“策略”模式和“合成”模式等组成,MVC模式由3各部分组成:

      模型:保存应用数据的状态,回应视图对状态的查询,处理应用业务逻辑,完成应用的功能,将状态的变化通知视图

      视图:为用户展示信息并提供接口。用户通过视图向控制器发出动作请求,然后再向模型发出查询状态的申请,而模型状态的变化会通知给视图。

      控制器:接收用户请求,根据请求更新模型。控制器还会更新所选择的视图作为对用户请求的回应。控制器是视图和模型的媒介,可以降低视图与模型的耦合度,是视图和模型的权责更加清晰,从而提高开发效率。

    2.1 Cocoa Touch中的MVC模式

      Cocoa和Cocoa Touch框架中的MVC模式与传统的MVC模式略有不同,前者的模型与视图不能进行任何通信,所有的通信都是通过控制器完成的

    在Cocoa Touch框架的UIKit框架中,UIViewController是所有控制器的根类,如UITableViewController、UITabBarController和UINavigationController。UIView是视图和控件的根类,模型一般继承与NSObject的子类。

  • 相关阅读:
    1012 The Best Rank (25 分)(排序)
    1011. World Cup Betting (20)(查找元素)
    1009 Product of Polynomials (25 分)(模拟)
    1008 Elevator (20 分)(数学问题)
    1006 Sign In and Sign Out (25 分)(查找元素)
    1005 Spell It Right (20 分)(字符串处理)
    Kafka Connect 出现ERROR Failed to flush WorkerSourceTask{id=local-file-source-0}, timed out while wait
    flume、kafka、avro组成的消息系统
    Java23种设计模式总结【转载】
    Java编程 思维导图
  • 原文地址:https://www.cnblogs.com/PJXWang/p/5039704.html
Copyright © 2011-2022 走看看