单例模式

2016-09-19  本文已影响0人  我是菜鸟66666

应用场景:确保程序运行期某个类,只有一份实例,用于进行资源共享控制。

优势:使用简单,延时求值,易于跨模块

敏捷原则:单一职责原则

实例:[UIApplication sharedApplication]。

注意事项:确保使用者只能通过 getInstance方法才能获得,单例类的唯一实例。

java,C++中使其没有公有构造函数,私有化并覆盖其构造函数。

object c中,重写allocWithZone方法,保证即使用户用 alloc方法直接创建单例类的实例,

返回的也只是此单例类的唯一静态变量。

@interface Singleton : NSObject

+ (Singleton *)sharedSingleton; 

@end

//Singleton.m

#import "Singleton.h"

@implementation Singleton

static Singleton *sharedSingleton = nil;

+ (Singleton *)sharedSingleton{

static dispatch_once_t once;

dispatch_once(&once,^{

sharedSingleton = [[self alloc] init];

//dosometing

});

returnsharedSingleton;

}

上一篇下一篇

猜你喜欢

热点阅读