zoukankan      html  css  js  c++  java
  • 单例模式

    单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。

    定义:

    singleton定义为“有且仅有一个元素的集合”。

    单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”

     要点:

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

    当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。
    当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展的实例时。

    在OC中使用代码创建单例

     

    static SingalClass * singal = nil;

    //传统的创建单例的方式

    +(id)shareSingal{

        if (singal == nil) {

            singal = [[self.class alloc]init];

        }

        return singal;

    }

    //使用GCD创建单例的方式

    +(id)defaulSingal{

        static dispatch_once_t onceToken;

        dispatch_once(&onceToken, ^{

            singal = [[self alloc]init];

        });

        return singal;

    }

  • 相关阅读:
    2016"百度之星"
    codeforces 55 div2 C.Title 模拟
    codeforces 98 div2 C.History 水题
    codeforces 97 div2 C.Replacement 水题
    codeforces 200 div2 C. Rational Resistance 思路题
    bzoj 2226 LCMSum 欧拉函数
    hdu 1163 九余数定理
    51nod 1225 余数的和 数学
    bzoj 2818 gcd 线性欧拉函数
    Codeforces Round #332 (Div. 2)D. Spongebob and Squares 数学
  • 原文地址:https://www.cnblogs.com/kfgcs/p/6400331.html
Copyright © 2011-2022 走看看