IOS 单例模式

所有编程语言的单例模式都大同小异。Object-c, Java, C++等,跟语言没有太大关系,只跟语法有点关系而己。

在IOS 中假如你有一个类:AccountManager,你要定义单例则步法如下:

一. 在.h文件中应该有类似如下定义:

+ (id) sharedInstance;

二. 在.m文件内类应该有如下定义:

//声明一个全局唯一的静态对象,也是AccountManager类型

static AccountManager * _sharedInstance;

//方法实现

+ (id) sharedInstance {

@synchronized ([AccountManagerclass]) {

if (_sharedInstance == nil) {

_sharedInstance = [[AccountManageralloc] init];

}

}

return_sharedInstance;

}

三. 你在别的类对象中如果要使用该单例,并调用该单例的某方法(todoSomething)为:

[[AccountManager sharedInstance] todoSomething ];

附加说明:

1。 sharedInstance这个名字是我习惯用的,你可以用别的名字,任意,总之就是保持AccountManager这个类在整个应用程序运行期间只能有一个实例

2。 这里的例子给你实现的是“懒汉式” 单例, 还有另外的单例方式也可以完成任务,如“饿汉式”单例。 如果你不清楚什么是懒汉和饿汉你可以再Google上查到

posted @ 2015-04-15 11:57  代佳宏  阅读(122)  评论(0)    收藏  举报