美文网首页
创建者模式-单例模式(OC)

创建者模式-单例模式(OC)

作者: ZhouMac | 来源:发表于2016-05-13 20:45 被阅读36次

单例模式


Singleton.h

#import <Foundation/Foundation.h>

@interface Singleton : NSObject

+ (Singleton *)sharedInstance;
- (void)print;
@end

Singleton.m

#import "Singleton.h"

@implementation Singleton

+ (Singleton *)sharedInstance {
    static Singleton *_sharedInstance = nil;
    static dispatch_once_t oncePredicate;
    
    dispatch_once(&oncePredicate, ^{
        _sharedInstance = [[self alloc] init];
    });
    
    return _sharedInstance;
}

- (void)print{
    NSLog(@"The Singleton Pattern");
}

@end

main.m

#import <Foundation/Foundation.h>
#import "Singleton.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        [[Singleton sharedInstance] print];
    }
    return 0;
}

注意:因为Objective-C的方法并没有private和public的概念,在任何时间任何对象之间消息都能被传递。因此上面的例子Singleton对象仍然能用init方法创建。

如果一定要使得init方法失效,来至http://stackoverflow.com/questions/195078/is-it-possible-to-make-the-init-method-private-in-objective-c 的解答方案。

相关文章

  • 创建者模式-单例模式(OC)

    单例模式 Singleton.h Singleton.m main.m 注意:因为Objective-C的方法并没...

  • 设计模式之单例模式

    设计模式之单例模式 1. 模式定义 单例模式又称为单件模式或单态模式,属于创建者模式。它确保某一个类只有一个实例,...

  • iOS-单例模式

    swift的单例设计模式 OC的单例设计模式 新学习一种单例思想

  • Singleton 单例模式

    单例概念 单例模式属于创建者模式,该模式提供了一种最佳的创建对象方式,为何最佳?? 单例是指对某个类而言,该类负责...

  • SpringRetry设计模式

    一、 Singleton单例模式RetryInterceptorBuilder重试拦截器创建者它为单例,同时为抽...

  • iOS模式解析-单例模式

    设计模式-单例模式 1、为什么用单例模式 1.1、OC编程习惯 xcode 4.2之前使用MRCalloc创建的对...

  • iOS 常见设计模式

    单例模式 代理模式 观察者模式 工厂模式 单例模式 load: 当类加载到OC运行时环境中(内存), 掉会调用一次...

  • 设计模式简介

    分类 创建型模式:单例模式、工厂方法模式、抽象工厂模式、创建者模式、原型模式。 结构性模式:适配器模式、桥接模式、...

  • 设计模式小结

    设计模式 7 大原则 创建型 单例模式 原型模式 创建者模式(生成器模式) 简单工厂模式 工厂方法模式 抽象工厂模...

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

网友评论

      本文标题:创建者模式-单例模式(OC)

      本文链接:https://www.haomeiwen.com/subject/psrmrttx.html