ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 低调看直播体育app软件下载 >> IOS开发 >> iOS开发:设计模式那点事

iOS开发:设计模式那点事(1/5)

来源:网络整理     时间:2016-05-09     关键词:ios开发,设计模式

本篇文章主要介绍了"iOS开发:设计模式那点事",主要涉及到ios开发,设计模式方面的内容,对于IOS开发感兴趣的同学可以参考一下: 说起设计模式,感觉自己把握不了笔头,所以单拿出iOS开发中的几种常用设计模式谈一下。单例模式(Singleton)概念:整个应用或系统只能有该类的一个实例在iO...

ios设计模式,ios mvc设计模式,ios设计模式有哪些,ios常用设计模式,ios中mvc设计模式,ios单例设计模式,ios中的设计模式,ios代理设计模式,ios工厂设计模式,ios kvo设计模式,ios中常用设计模式,ios设计模式解析,ios开发模式,ios开发者模式,ios开发 工厂模

说起设计模式,感觉自己把握不了笔头,所以单拿出iOS开发中的几种常用设计模式谈一下。

单例模式(Singleton)

概念:整个应用或系统只能有该类的一个实例

在iOS开发我们经常碰到只需要某类一个实例的情况,最常见的莫过于对硬件参数的访问类,比如UIAccelerometer.这个类可以帮助我们获得硬件在各个方向轴上的加速度,但是我们仅仅需要它的一个实例就够了,再多,只会浪费内存。

所以苹果提供了一个UIAccelerometer的实例化方法+sharedAccelerometer,从名字上我们也能看出此方法让整个应用共享一个UIAccelerometer实例(PS:iOS 的开放中,我们往往能从方法名中就了解这个方法的作用),它内部的如何实现我们暂且不谈,先来看看还有哪些类同样使用了单例模式。

● UIApplication类提供了 +sharedAPplication方法创建和获取UIApplication单例

● NSBundle类提供了 +mainBunle方法获取NSBundle单例

● NSFileManager类提供了 +defaultManager方法创建和获得NSFileManager单例。(PS:有些时候我们得放弃使用单例模式,使用-init方法去实现一个新的实例,比如使用委托时)

● NSNotificationCenter提供了 +defaultCenter方法创建和获取NSNotificationCenter单例(PS:该类还遵循了另一个重要的设计模式:观察者模式)

● NSUserDefaults类提供了 +defaultUserDefaults方法去创建和获取NSUserDefaults单例

等等,苹果的SDK中大量的遵循此设计模式,那么它的内部是如何实现的呢?

首先给大家介绍一下GCD技术,是苹果针对于多核CPU的多任务解决方案。你不需要了解更多,只需要知道是一组基于C语言开发的API(详细内容可以看一下唐巧前辈的这篇博文:http://blog.devtang.com/blog/2012/02/22/use-gcd/ )。GCD提供了一个dispatch_once函数,这个函数的作用就是保证block(代码块:暂时理解为一个跟函数相近的东西,具体可以参照这篇文章:http://blog.csdn.net/enuola/article/details/8674063 )里的语句在整个应用的生命周期里只执行一次。

OK,接下来就给出一个使用了单例模式新建和获取实例的类模版,代码如下:

相关图片

相关文章