`

iOS开发中的MVC(一)

    博客分类:
  • ios
 
阅读更多

MVC:模型,视图,控制器,是iOS开发中用到的主要的设计模式。Model中处理逻辑与数据,View展示应用界面,接收用户的操作,而Controller夹在View和Model中间,当View接收到用户操作,他将通知Controller,Controller会判断采取什么样的措施,Controller也负责将逻辑和数据处理交给Model完成,根据返回结果来更新View。Controller就像胶水,将两个独立的部分粘合在一起。他们的图示如下:

 

iO

S MVC结构图

其中Y形的线表示了他们之间的通信规则:Model和Controller之间可以通信,View和Controller之间可以通信,而View和Model之间是禁止通信的。

Controller可以通过直接访问属性、调用方法,来控制Model和View,向他们传递消息,对于Storyboard和XIB文件,上面的控件可以通过生成outlet来调用,如果直接代码生成的话,就调用控件实例。

Controller必须实现View中所定义的target或者delegate方法,来实现View对Controller的回调。这样,View就可以通知Controller自己的变化,以及用户对View的操作。View还有data source方法,用于向Controller请求某些时刻需要显式的数据,比如UITableViewDataSource中,会在table view生成时,向Controller请求表格的行数和页面上可见的单元格中的内容。

Model可以通过Notification和KVO的方式来通知Controller在Model中数据的改变。也可以使用delegate或者block来实现,在AFNetworking中的网络状态变化通知,就是使用block来实现的。

把所有的逻辑和数据都放到Model层中,Model就会变得很杂乱,所以我习惯把Model再细分:

Service层,用于为Controller提供一些最直接的逻辑功能、数据封装,并且管理下一层模块,向下一层模块请求数据。Controller只管理他所拥有的View,以及与他直接相关的Service类。

Manager层,用于管理一大类操作,比如:数据同步功能,写一个数据同步的类,再类中处理网络状态判断、缓存数据的读写以及缓存数据的发送,错误处理。Manager层位于Service层之下,接受Service的调度。

Handler层,用于实现具体的操作,如:FileHandler,用来处理文件存储操作,将字符串或NSData数据转换成文件并存放在指定路径,以及一些多线程处理操作。Handler层接受Manager调度。

Model还有一些其它的部分:实现一些公共方法的Utility工具类,以及一些存储数据结构的类。

各个平级的层之间不允许互相调用,调用只能自上而下发生,回调都使用block来实现。这样实现,项目结构看起来就清晰了许多。Model结构图如下:

 

 

分享到:
评论

相关推荐

    IOS开发之MVC

    MVC模式在iOS开发中扮演着重要的角色,它不仅有助于构建清晰、易于理解的应用程序架构,还提高了代码的可维护性和可扩展性。通过正确应用MVC模式,开发者可以更好地应对日益复杂的移动应用需求。

    ios开发详解markdown格式

    #### 一、iOS开发概述 iOS开发是指为苹果公司的移动操作系统iOS创建应用程序的过程。iOS操作系统主要用于iPhone、iPad以及iPod Touch等设备。为了开发iOS应用,开发者通常会使用两种主流的编程语言:Swift和...

    iOS tableview_demo_mvc

    在iOS开发中,UITableView是一种非常重要的UI组件,用于展示列表数据。这个名为“iOS tableview_demo_mvc”的项目,显然是一份使用Model-View-Controller(MVC)设计模式编写的TableView示例代码,旨在帮助新手理解...

    IOS Masonry+MVC+AFNetworking动态获取列表

    在iOS应用开发中,"IOS Masonry+MVC+AFNetworking动态获取列表"是一个常见的应用场景,主要用于构建数据驱动的界面,尤其是从网络上获取并显示数据。以下将详细讲解这三个核心概念及其组合使用的方式。 **Masonry**...

    iOS开发进阶篇-成为一个iOS开发高手

    在iOS开发领域,掌握进阶技术是提升个人技能的关键步骤,这将使你从众多开发者中脱颖而出。"iOS开发进阶篇-成为一个iOS开发高手"这份资料正为此目标提供了全面的指导。它深入探讨了iOS开发的核心概念和技术,旨在...

    张星宇-东北大学-iOS开发1

    2. C++在iOS开发中的应用:C++是一种功能强大且广泛使用的编程语言,在iOS开发中,它可以与OC(Objective-C)语言一起使用。张星宇在自己的iOS开发中使用了C++来实现某些功能。 3. Swift语言:Swift是一种由Apple...

    iOS开发进阶-完整版

    根据提供的信息,我们可以推断出这是一本关于iOS开发进阶的书籍,作者为唐巧。虽然提供的部分内容似乎并不是实际的章节内容,但从标题、描述和标签中,我们可以推测本书可能涵盖的一些关键知识点。 ### iOS开发进阶...

    基于MVC的IOS快速开发框架 BeeFramework.zip

    BeeFramework是一款iOS平台的MVC应用快速开发框架,使用Objective-C开发。 其早期原型曾经被应用在QQ空间 、QQ游戏大厅 等多款精品APP中。 BeeFramework 从根本上解决了iOS开发者长期困扰的各种问题,诸如:分层架构...

    swift-一个iOS基于消息的MVC框架

    在iOS应用开发中,尤其是在使用Swift编程语言时,MBMvc框架提供了一种优雅的方式来解耦Model、View和Controller,避免了它们之间的直接引用,从而更好地管理组件的生命周期,减少潜在的内存泄漏和依赖关系混乱。...

    ios中文开发教程资料全收录

    4. **Model-View-Controller (MVC)**: MVC是一种常见的软件设计模式,在iOS开发中广泛使用。模型(Model)负责数据管理,视图(View)展示用户界面,控制器(Controller)协调模型和视图的交互。理解MVC架构有助于...

    iOS开发中的几种设计模式介绍

    本文将深入探讨几种在iOS开发中常用的设计模式:代理模式、观察者模式、MVC模式、单例模式、策略模式以及工厂模式。 1. **代理模式**: 代理模式在iOS开发中广泛应用,主要用于对象间通信。例如,UITableView的...

    ios 中文开发文档

    本文将深入探讨iOS开发的关键知识点,结合“ios中文api”这一标签,我们将围绕iOS API、开发环境、编程语言、界面设计、调试技巧以及应用发布等方面进行详细阐述。 首先,iOS API是Apple为开发者提供的核心工具,它...

    iOS 软件开发的MVC以及宏的应用

    在iOS开发中,宏的常见用途包括: 1. **常量定义**:定义全局常量,避免硬编码值,如`#define kScreenWidth [UIScreen mainScreen].bounds.size.width` 2. **日志记录**:自定义 NSLog 或其他日志系统,便于调试和...

    北航iOS开发选修课pdf

    5. **模型-视图-控制器(MVC)**:介绍iOS开发中常见的设计模式,如何组织代码结构,实现数据与界面的分离。 6. **网络编程**:讲解iOS应用如何进行HTTP请求,使用URLSession、AFNetworking等库,以及JSON数据解析...

    iOS架构Demo(MVC、MVP)

    MVC是iOS开发中最常用的架构模式,它将应用分为三个主要部分:Model(模型)、View(视图)和Controller(控制器)。Model负责数据处理和业务逻辑,View负责显示数据,而Controller作为两者之间的桥梁,处理用户交互...

    20天搞定iphone软件开发教程ios开发教程

    在iOS开发中,模型-视图-控制器(MVC)是一种常见的设计模式。教程会解释MVC的工作原理,以及如何在实际项目中应用。你还将学习到如何使用苹果的UIKit框架,这是一组用于构建用户界面的工具。 此外,iOS应用常常...

    iOS中MVC设计模式实例代码

    在iOS开发中,MVC(Model-View-Controller)设计模式是一种常见的架构模式,用于组织应用程序的代码结构,提高可维护性和可扩展性。MVC将应用分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)...

    iOS中MVC等设计模式详解 - iOS知识库1

    在iOS开发中,MVC(Model-View-Controller)是一种常用的设计模式,它将应用程序的逻辑分为三个主要组件,使得代码结构清晰、可维护性增强。MVC模式是Apple的Cocoa和Cocoa Touch框架的基础,是Objective-C和Swift...

    ios-MVC简化控制器代码.zip

    在iOS开发中,MVC(Model-View-Controller)模式是一种常见的设计模式,用于组织应用程序的结构和逻辑。本文将深入探讨如何通过MVC模式来简化iOS应用中的控制器(Controller)代码,以应对描述中提到的tableview代理...

    iOS开发规范指南.zip

    在iOS开发过程中,遵循一套规范和最佳实践是至关重要的,这不仅能够提高代码质量,还能增强团队间的协作效率。这份“iOS开发规范指南”涵盖了多个关键领域,包括编程语言、项目结构、命名约定、错误处理、性能优化...

Global site tag (gtag.js) - Google Analytics