您的位置:首页 > 娱乐 > 明星 > 北京市建设工程信息网交易网站_深圳独立站建站_seo站长常用工具_外链信息

北京市建设工程信息网交易网站_深圳独立站建站_seo站长常用工具_外链信息

2025/2/25 1:28:01 来源:https://blog.csdn.net/qq_74177011/article/details/144068707  浏览:    关键词:北京市建设工程信息网交易网站_深圳独立站建站_seo站长常用工具_外链信息
北京市建设工程信息网交易网站_深圳独立站建站_seo站长常用工具_外链信息

单例是软件设计常用的一种模式,它的核心结构中只有一个被称为单例的特殊类,通过单例模式可以保证应用该模式的类只有一个实例化对象,其作用就是能够使类中的一个对象成为系统中的唯一实例。

单例的特点:

  • 某个类只有一个实例化对象
  • 必须自动创建该实例对象
  • 必须向整个系统提供该实例对象

单例的优缺点:

优点:

  • 单例模式可以阻止其它对象实例化其单例对象的副本,保证所有对象都只能访问该唯一实例对象
  • 因为类控制了实例化过程,所有类可以更加灵活的更改实例化过程

缺点:

  • 虽然单例模式实例对象只有一个,但是如果每次对象请求引用时都要检查是否存在类的实例,这仍然需要一定的开销,可以通过静态初始化解决该问题。
  • 使用单例对象时,开发者必须记住该类不能实例化对象。
  • 不能解决删除单个对象的问题

在单例模式中,通常会把构造器设置成私有,这样可以防止从类的外部实例化对象,代码示例如下:

//单例
class SingleLeton {static let singleLeton = SingleLeton()private init() {print("私有的构造方法")}var count = 0static var a = 1func visit(){}}

在示例中,类中使用了一个静态常量singleLeton来存储单例对象,同时对构造器会sh设置成私有。

单例对象使用static修饰有以下原因:

通过static修饰的属性或者方法是属于类型或者类的,而不是实例对象。这样保证了单例对象在全局范围内只有一个实例,且这个实例在程序的生命周期内不会被动销毁。

懒加载是指变量或方法在第一次使用时才会被加载和初始化。这对于单例模式非常有用,因为它可以延迟对象的初始化,直到真正需要使用该对象时才进行加载,从而节省资源‌。

还有一点原因就是类的构造器已经设置为私有,意味着你不可以在类的外部创建实例对象,如果不用static修饰的话,你的单例对象是无法被访问的。

单例对象使用let而不用var的原因:

使用let声明单例对象时,该对象是不可变的,一旦赋值后就不能再改变。这意味着你不能重新指向一个新的单例对象。这种方式的好处是确保了单例的唯一性,避免了单例被重新赋值的风险。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com