2016.01.22 单例模式(Singleton)

单例模式:整个程序的一个类只能有一个实例对象:(UIApplication、NSUserDefaults等都是IOS中的系统单例)

        1.物理设备  eg:打印机

        2.不可多个同时存在的资源  eg:数据库

单例的写法:

  这是第一种,也是最简单、最常用的一种:

 1 #import "FileOpration.h"
 2
 3 static FileOpration *instance = nil;        //静态变量,从定义开始到整个程序结束
 4
 5  @implementation FileOpration
 6
 7 + (instancetype)sharedFileOpration{
 8
 9     if (instance == nil) {
10         instance = [[FileOpration alloc]init];
11     }
12
13     return instance;
14 }
15
16 @end

  第二种写法,加入了线程,以及重写alloc方法

+ (FileOperation *)sharedManager{
        static FileOperation *instance = nil;
        static dispatch_once_t predicate;
        dispatch_once(&predicate, ^{
                instance = [[self alloc] init];
        });
    return ManagerInstance;
}

/*
  重写alloc方法,在调用alloc方法的时候实际上是默认调用allocWithZone
  */
+ (instancetype)allocWithZone:(struct _NSZone *)zone{
    return [self sharedOperation];
}
时间: 2024-12-10 11:43:40

2016.01.22 单例模式(Singleton)的相关文章

[官方软件] Easy Sysprep v4.3.29.602 【系统封装部署利器】(2016.01.22)--skyfree大神

[官方软件] Easy Sysprep v4.3.29.602 [系统封装部署利器](2016.01.22) Skyfree 发表于 2016-1-22 13:55:55 https://www.itsk.com/forum.php?mod=viewthread&tid=362766&highlight=Easy%2BSysprep [官方软件] Easy Sysprep v4.3.29.602 [系统封装部署利器](2016.01.22) [Easy Sysprep]概述:Easy Sy

2016.01.22 简单动画

简单动画没什么好说的,直接看代码.=-= //横向.纵向移动 [UIView animateWithDuration:0.5 animations:^{ self.aView.frame = CGRectMake(_aView.frame.origin.x, _aView.frame.origin.y + 50, _aView.frame.size.width, _aView.frame.size.height); }]; //渐变效果 [UIView animateWithDuration:0

[2016.01.22]万峰文本处理专家 v2.1

<万峰文本处理专家>是一款简单易用,且功能强大的各类文本文件处理软件.1.支持多任务的处理模式,允许一次处理多个任务.2.支持正则表达式替换,替换更加强大:3.支持各类关键字的行处理操作:4.支持各类起始关键字和结束关键字的行的处理操作:5.多线程任务管理,速度快,性能稳定.6.文本替换专家作者十年磨一剑之力作. 淘宝购买地址:http://item.taobao.com/item.htm?spm=0.0.0.0.0W6h2V&id=520620878928

个人快捷键配置备忘-2016.01.22

1 Visual Studio 2010 头文件和源文件切换:  Alt+F1 在VA助手中查看 注释: Ctrl+K,Ctrl+C  (先按下Ctrl,然后依次按K,C) 取消注释: Ctrl+K,Ctrl+U 快速跳转定义: F1 向前导航: Alt+1  向后导航: Alt+2 删除行: Shift+Delete 2 Eclipse

php设计模式——单例模式(Singleton)

二十三种设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 谷歌的Android设备 华为的Android设备 IOS只属于苹果公司 IOS只属于苹果公司 1 <?php 2 3 /* 4 * php

二十四种设计模式:单例模式(Singleton Pattern)

单例模式(Singleton Pattern) 介绍保证一个类仅有一个实例,并提供一个访问它的全局访问点. 示例保证一个类仅有一个实例. Singleton using System; using System.Collections.Generic; using System.Text; namespace Pattern.Singleton { /// <summary> /// 泛型实现单例模式 /// </summary> /// <typeparam name=&q

2016.01.18-2016.01.21盲审通关修改

请以上同学在1月21日(星期四)之前将以下材料交到研究生科: 1.装订好的硕士学位论文3本(注意:封面上作者姓名和指导教师隐去.致谢隐去.硕士学位期间发表的全部的论文作者隐去): 2.普通信封上写明评阅费:200元.邮寄费:22元,并将相应的钱款分别装入以上三个信封(普通信封,一共:200*3+22*3元): 3.从研究生管理信息系统中导出的“论文评阅书”封面上的作者姓名和指导教师姓名隐去:交三份“论文评阅书”和三份“学位论文评阅聘书”. 4.交三份“EMS”信封和一个装有20×3=60元邮寄费

Android设计模式——单例模式(Singleton)

二十三种设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 1 package com.example.main; 2 3 import android.app.Activity; 4 import

01设计模式——单例模式

前言:以下总结来自龙哥---左潇龙博客. 总结的很到位,附上博客链接:http://www.cnblogs.com/zuoxiaolong/p/pattern2.html 目的:尽可能的节约内存空间,减少无谓的GC消耗,并且使应用可以正常运作. 如何判断单例:这些类,在应用中如果有两个或者两个以上的实例会引起错误,又或者我换句话说,就是这些类,在整个应用中,同一时刻,有且只能有一种状态. 1 /** 2 * 简单单例模式 3 * 目的,是为了尽可能的节约内存空间,减少无谓的GC消耗,并且使应用可