作者感言

有一段时间没有发博客了, 刚好现在忙完项目的需求, 现在可以闲下来写写博客, 顺便自己给自己复习巩固一下知识, 不过我在这里又要吐槽一句, 项目中遇到了一个单例的问题, 让我感到非常的蛋疼, 写这个单例的人只是单纯了为了写单例而写单例, 没有想到会发生什么, 现在让我们一起来看看什么叫单例吧.

最后: 如果你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考你们的意见再进行修改, 联系我时, 请备注单例模式 如果觉得好的话, 希望大家也可以打赏一下~嘻嘻~祝大家学习愉快~谢谢~

Cain(罗家辉)

zhebushimengfei@qq.com: 联系方式

350116542: 腾讯QQ


简介

这是一张单例的UML图, 非常简单明了的讲解单例类到底是怎么回事, 通常单例是用来作为管理中心, 或者是通知中心, 比如在iOS当中的NSNotificationCenter, [[UIApplication sharedApplication] statusBarStyle], NSUserDefaults, [NSFileManager defaultManager]等等都是单例, 单例类有几个特征.

  • 系统当中只有一个实例
  • 易于外界访问
  • 防止子类继承
  • 共享信息

准备工作

首先, 我们先来建一个WorkSpace, 这样子方便我们以后多添加工程, 因为单例模式只是我们的开始.


添加单例工程

创建完WorkingSpace之后, 我们就来添加SingletonPattern(单例)的工程


创建单例类

现在我们来创建一个叫UserInfoManager单例类

声明一个类方法用于外界访问

接下来我们去实现这个类方法就好了

看起来, 我们好像搞定了整个单例模式了, 下面让我们来试试效果.

打印出来的效果好像是只有一个, 但实际上并不是的, 我们再来看看

发现这个类还是可以初始化的, 并且是另外开辟了内存空间来存储的, 这就很尴尬了, 说好的只有一个实例呢???

我在这里说一句, 施主莫怕, 等贫僧跳大, 继续回到单例类当中, 添加几个判断就好了

口说无凭, 我们来看看运行效果

这下子, 可以说明是只有一个实例了吧, 下面再来看看子类是否能继承


好了, 现在单例所需的

  • 易于外界访问
  • 系统当中只有一个实例
  • 防止子类继承

我们都搞定, 酱紫我们就完成了一个单例类的创建啦


工程地址

项目地址: github.com/CainRun/Des…

玩转iOS开发:《iOS设计模式 — 单例模式》相关推荐

  1. IOS开发基础之单例模式

    IOS开发基础之单例模式 各种编程语言都有单例模式.起初23设计模式是来自C++总结设计出来的.其他编程语言陆续也出来了. 直接上源码.为了方便起见,打印日志我也放到源码里面了. // // View ...

  2. 开发必看 | iOS开发常用设计模式!

    ios开发学习中,经常弄不清楚ios的开发模式,今天我们就来进行简单的总结和探讨~ (一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现. 优势:解耦合 敏捷 ...

  3. iOS开发--iOS应用架构谈 view层的组织和调用方案

    前言 <iOS应用架构谈 开篇>出来之后,很多人来催我赶紧出第二篇.这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间不够充分. 现在好啦,第二 ...

  4. iOS开发- ios学习资源(持续更新)

    mark一些自己在学习过程中收集的资源.免得需要的时候没地方找. 持续更新.(最新更新时间: 2014.4.4) 1.苹果官方文档 构建iOS程序:下面的这篇文章介绍了 iOS 程序开发的过程: St ...

  5. iOS开发--iOS及Mac开源项目和学习资料

    文/零距离仰望星空(简书作者) 原文链接:http://www.jianshu.com/p/f6cdbc8192ba 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". ...

  6. iOS开发- ios学习资源

    1.苹果官方文档 构建iOS程序:下面的这篇文章介绍了 iOS 程序开发的过程: Start Developing iOS Apps Today 构建Mac OS X程序:下面这篇文章介绍了Mac O ...

  7. [iOS开发]iOS中的Hash

    文章目录 前言 关联对象的底层原理 weak的实现原理 KVO的实现原理 iOS App签名的原理 对象引用计数存储的位置 Runloop与线程的存储关系 NSDictionary的原理 哈希表 哈希 ...

  8. (0020)iOS 开发之-设计模式-懒加载解惑

    提醒:这是苹果公司提倡的做法.其实苹果公司做的IOS系统中很多地方都用到了懒加载的方式,比如控制器的View的创建. 懒加载:也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,其 ...

  9. iOS开发之设计模式篇

    1111 转载于:https://www.cnblogs.com/hwangcheng/articles/8271375.html

  10. iOS开发--- iOS编程浅析

    1.简介 IOS是由苹果公司为iPhone.iPod touch和iPad等设备开发的操作系统. 2.知识点 1.IOS系统 iPhone OS(现在叫iOS)是iPhone, iPod touch ...

最新文章

  1. 面进了心心念念的国企!以为TM上岸了!干了1年!我却再次选择回到互联网大厂内卷!
  2. ABP理论学习之授权(Authorization)
  3. C#LeetCode刷题之#819-最常见的单词(Most Common Word)
  4. TensorFlow2.0(七)--基础API使用
  5. 【七】jquery之属性attr、 removeAttr、prop[全选全不选及反选]
  6. 计算机基础win7桌面操作,windows7基本操作方法(零基础的人教学)-win7教程
  7. VS2017 Ankhsvn不可用
  8. 计算机没有autoCAD_《AutoCAD三维设计环境》
  9. 手机显示一帧的流程是如何实现?
  10. 5大免费使用的在线客服系统盘点
  11. 10万微商被骗100亿,最大微商集团被爆涉嫌传销
  12. 微商扫码发货管理系统开发
  13. 「Python条件结构」显示学号及提示信息
  14. 解决win10在安装Android-studio时提示HAXM无法安装问题
  15. gwr模型用什么做_建筑信息模型是什么?能做什么?
  16. 美团发布Q3财报:主体业务加速增长 将大力投入科技创新和新业务
  17. MySQL NDB群集8.0 概述,NDB群集核心概念
  18. 河源水质检测实验室建设方案曝光
  19. Flip Gamedfs
  20. 老潘的AI部署以及工业落地学习之路

热门文章

  1. 细颗粒度Singleton模式实现
  2. 谈从10亿个数中找出前10万个最大的
  3. 一个简单的反射拷贝一份新的实体类
  4. Flink如何取代JStorm,成为字节跳动流处理唯一标准?
  5. nRF5 SDK for Mesh(一) 介绍和下载源码
  6. 侧记戴尔的第三代虚拟化价值观
  7. (五)WebRTC手记Channel概念
  8. 用Play 1.x 实现简单云计算多租户设计(Use Play 1.x To Achieve Multi-Tenancy Design)
  9. Flume向HDFS写数据实例
  10. eclipse Indigo Helios Galileo几种版本的意思