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的子类。

  • 相关阅读:
    你现在是否在高效地使用时间?
    关于不使用web服务实现文本框自动完成扩展
    SpringBoot(一) -- SpringBoot入门
    微信小程序(三)--小程序UI开发
    微信小程序(二)--逻辑层与界面层
    微信小程序(一)--微信小程序的介绍
    Spring学习(七)--Spring MVC的高级技术
    Spring学习(四)--面向切面的Spring
    Spring学习(三)--高级装配
    django源码分析 LazySetting对象
  • 原文地址:https://www.cnblogs.com/PJXWang/p/5039704.html
Copyright © 2011-2022 走看看