ios开发随笔之几种模式(一)
来源:互联网 发布:puppy linux做u盘启动 编辑:程序博客网 时间:2024/06/05 11:40
ios开发之几种设计模式之单例模式
在ios开发中,像其他面向对象语言一样,也会根据开发的需要,设计特定的模式来完成开发。常见的有这么几种模式:单例模式,观察者模式,代理模式,MVC模式,以及block。
单例模式:是iOS常用设计模式中的一种。单例设计模式的作用是使得这个类的一个对象成为系统中的唯一实例,因此需要用一种唯一的方法去创建这个对象并返回这个对象的地址。使用单例模式要满足两个条件:1、类只能有一个实例,而且必须从一个为人熟知的访问点对其访问。2、这个唯一的实例只能通过子类化进行扩展,而且扩展的对象不会破坏客户端代码。
常用的写法:(以下是考虑了线程安全问题加以整合后使用比较方便写法)
#import <Foundation/Foundation.h>@interface userData : NSObject+ (id)shareInstance;@end
#import "userData.h"static userData *defultUserData;@implementation userData+ (id)shareInstance{ if (defultUserData == nil) { defultUserData = [[[userData class] alloc] init]; } return defultUserData;}@end
上面是常见的单例模式,还有一种是使用了GCD
#import "userData.h"//static userData *defultUserData;@implementation userData/*+ (id)shareInstance{ if (defultUserData == nil) { defultUserData = [[[userData class] alloc] init]; } return defultUserData;}*/+ (id)shareInstance{ static dispatch_once_t predicate; static userData *defultUserData; dispatch_once(&predicate,^{ defultUserData = [[userData alloc] init]; }); return defultUserData;}@end
void dispatch_once( dispatch_once_t *predicate, dispatch_block_t block);
其中第一个参数predicate,该参数是检查后面第二个参数所代表的代码块是否被调用的谓词,第二个参数则是在整个应用程序中只会被调用一次的代码块。dispach_once函数中的代码块只会被执行一次,而且还是线程安全的。
今天就写到这里吧,其他模式以后有时间再继续更。
(PS:原创不易,转载请标明出处)
0 0
- ios开发随笔之几种模式(一)
- Ios开发随笔之block(一)
- 学习iOS开发随笔(一)
- iOS开发之设计模式(一)
- 随笔之设计模式(一)
- ios之随笔学习日志(一)
- ios开发随笔记(一)
- IOS开发中的几种设计模式介绍(思想)
- iOS开发中的几种设计模式
- iOS开发中的几种设计模式
- iOS 开发中的几种设计模式
- ios开发中的几种设计模式
- 设计模式 随笔(一)
- java面试之几种开发模式
- NDK 开发随笔(一)
- iOS开发之设计模式(一)单例模式(Singleton)
- IOS开发中的几种设计模式介绍
- IOS开发中的几种设计模式介绍
- 判断大小端序的C程序
- 关于android的闪烁动画。 参考原创demo的<20130314帧动画以及动画>
- JPA在@OneToMany里加入mappedBy属性避免生成中间表
- 在同一个textview里面设置一段文字 有不同的 颜色。
- 根据出生日期Date 计算年龄
- ios开发随笔之几种模式(一)
- 代码覆盖率工具 Istanbul 入门教程
- Android WebView 内存不回收处理办法
- 很惊讶,程序员在工作中的幸福感竟然是?????
- 2015年第十四周oj刷题:比较大小-类模板
- AutoResetEvent、ManualResetEvent、Mutex分析
- Android中禁止多点触控的设置
- atomikos实现多数据源支持分布式事务管理(spring、tomcat、JTA)
- OpenGL VBO顶点缓冲的使用