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

    一、 什么是单例模式

    证系统中一个类只有一个实例并且提供全局入口访问这个实例。

    常用的单例使用情景有:UIApplication(应用程序实例类) NSNotificationCenter(消息中心类) NSFileManager(文件管理类) NSUserDefaults(应用程序设置) NSURLCache(请求缓存类) NSHTTPCookieStorage(应用程序cookies池)

    二、 单例模式的基本实现

    #pragma mark === 单例
    +(instancetype)sharedManager
    {
        static TangLinHFNetWorkManager* manager=nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            if (manager == nil) {
                 manager=[[TangLinHFNetWorkManager alloc]init];
            }
        });
        return manager;
    }

    这个是我平时网络请求使用的单例类。

    为了防止重复创建,有两种方法解决:一是直接禁用他的创建方法,然后提示一个错误信息。第二种就是重写几种创建方法。

    三、 单例模式的优缺点

    优点:

    1.提供了对唯一实例的受控访问,很使用简单,易于跨模块。

    2.由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。

    3.因为单例模式的类控制了实例化的过程,所以类可以更加灵活修改实例化过程。

    缺点:

    1.不易被重写或扩展

    2.不能被继承

    3.单例只要程序不销毁就一直存在,消耗了系统内存资源

  • 相关阅读:
    mysql---面试题2
    Mysql--存储过程
    MySql--锁机制
    MYsql事务
    IDEA创建新项目保存pom文件时,出现错误Cannot resolve org.openjfx:javafx.base:11.0.0-SNAPSHOP
    线程中的多线程、并行和并发、同步和异步、阻塞和非阻塞、线程安全
    Java里的Arrays.asList()返回的List不能使用add、remove方法?
    服务器可用的Socket
    MessageBox.Show
    NPOI 教程
  • 原文地址:https://www.cnblogs.com/laolitou-ping/p/12747045.html
Copyright © 2011-2022 走看看