zoukankan      html  css  js  c++  java
  • 单例

    1.单例的介绍:

    单例模式是一种常用的设计模式,在应用这个模式时,单例对象的类必须保证只有一个实例存在。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

    2.单例的创建:

    (1).h文件

    #import <Foundation/Foundation.h>

     @interface MGSingleMethod : NSObject

    {

        //传递的值

        NSString *_name;

    }

     @property (nonatomic,copy) NSString *name;

     //通过类方法得到这个类

    + (MGSingleMethod *)shareSingleMethod;

     + (void)releaseSingle;

     @end

    (2).m中的实现

     #import "MGSingleMethod.h"

    @implementation MGSingleMethod

    //1.设置静态的对象

    static MGSingleMethod *single = nil;

     + (MGSingleMethod *)shareSingleMethod {

        //2.线程安全,这样的创建只有一个线程进入,只能创建一个对象

        @synchronized(self) {

            

            single = [[MGSingleMethod alloc] init];

        }

        

        return single;

    }

    //为了保证对象的唯一性,重写allocwithzone方法

    + (instancetype)allocWithZone:(struct _NSZone *)zone {

        if (single == nil) {

            single = [super allocWithZone:zone];

        }

        return single;

    }

    //释放对象

    + (void)releaseSingle {

        if (single != nil) {

            single = nil;

        }

    }

    @end

    3.单例的应用:

    在用到单例的类中,引入单例的h文件,然后通过类方法创建单例对象,然后可以对要传递的值进行赋值,然后在应用这个值的类,同样通过类方法创建单例,直接引入传递的值即可。

  • 相关阅读:
    fiddle 抓取PC端浏览器的Https请求和
    fiddle 截取手机日志如何设置
    APP(二)adb 日志分析
    APP(一) 测试知识点
    查询电脑IP地址
    接口是什么、常见接口类型/协议、常见的 http 状态码、剖析 cookie session、接口相关问题
    SQL 语句的执行顺序
    MySQL 数据库(三):查
    lr参数与C语言函数参数的区别
    使用jdk自带的visualVM监控远程监控was
  • 原文地址:https://www.cnblogs.com/zhangxiansen/p/5740007.html
Copyright © 2011-2022 走看看