天天看点

单例模式

单例模式(singleton pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。

      单例模式有三个要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。

单例模式是结构最简单的设计模式一,在它的核心结构中只包含一个被称为单例类的特殊类。

@interface pen : nsobject

+ (pen *)sharedpen;

@end

#import "pen.h"

@implementation pen

//写法一(错误)

//+ (pen *)sharedpen

//{

//    static pen *pen = nil;

//    if (!pen) {

//        pen = [[pen alloc]init];

//    }

//    return pen;

//}

//写法二

//    @synchronized(self)

//    {

//        if (!pen) {

//            pen = [[pen alloc]init];

//        }

//写法三

+ (pen *)sharedpen

{

    static pen *pen = nil;

    //保证里面方法值执行一次

    static dispatch_once_t oncetoken;

    dispatch_once(&oncetoken, ^{

        pen = [[pen alloc]init];

    });

    return pen;

}

继续阅读