iOS扩展

【iOS】设计模式:单例、MVC、MVVM

2019-04-24  本文已影响28人  an_Anthony

单例模式是一种最基本的设计模式,单例类在系统中只有一个实例,通过全局接口来访问或者更新数据。

Cocoa框架中常用的单例对象有:

UIApplication:一个UIApplication对象代表一个应用程序,每个应用程序有且仅有一个UIApplicatioin对象,常用它的openURL方法来跳转到其他应用程序,可以通过[UIApplication sharedApplication]来获取该实例对象。

NSNotificationCenter:通知中心。同一个应用有且仅有一个默认通知中心,采用观察者模式来进行消息的广播。可以通过[NSNotificationCenter defaultCenter]调用。

NSFileManager:文件管理器。用来创建、修改、访问文件。默认单例可用[NSFileManager defaultManager]获得。

NSUserDefaults:用来存储数据,是数据持久化最基础的一种方案,可通过[NSUserDefaults standardUserDefaults]调用。

NSWorkspace:应用级控制中心单例,可以用来打开或操作文件和设备以获取文件和设备的信息,跟踪文件或设备的变动,设置获取文件的Finder信息,启动应用程序,可通过[NSWorkspace sharedWorkspace]调用。

NSURLCache:设置内存缓存,可通过[NSURLCache sharedURLCache]类函数调用。

NSHTTPCookieStorage:管理cookie的单例对象。

MVC设计模式是构建iOS应用的标准模式,分为三个部分:Model(数据模型)、View(视图)、Controller(控制器)。

Model用来存储对象数据,一般继承于NSObject进行封装。

View是用户看到的UI界面,用UIKit中的各种控件进行搭建,有些可以和用户进行交互。

Controller是逻辑控制器,作为中转负责View和Model之间的通信,一个APP至少有一个Controller。

MVC的优点:低耦合性、高重用性、可维护性。

MVC的缺点:增加系统复杂性、控制器容易臃肿、缺少专门的网络处理部分。

MVVM设计模式在View和Controller之间增加了一层ViewModel来实现数据的绑定,解决MVC中Controller过于臃肿的问题。

MVVM的核心是ViewModel,ViewModel有自己的属性并且持有Model对象,可以单独抽离供给其他项目。ViewModel使得

Controller️只专注于业务分配工作,将Model与View之间的通信剥离,并完成如数据转换、字符拼接等工作。ViewModel还可

以完成复杂的网络请求逻辑,ViewModel不持有任何UI对象,只关心自己的数据处理逻辑是否正确。

上一篇 下一篇

猜你喜欢

热点阅读