单例模式的理解

单例,是Cocoa的核心模式之一,我们经常使用到,比如UIApplication , NSFileManger。
单例模式:一个类只有一个实例化对象,只提供一个全局访问点。全局只有一个实例,只从一个地方访问,使用起来就非常的简单方便,保证了访问点的唯一性和一致性,很容易为人熟知。
但是单例是没有从属的,自己管理自己的生命周期,等同于程序的生命周期,在程序运行过程中一直存在。这样说来的话,就有一些弊端在里边,我们知道我们忌讳全局可变化状态,很有可能单例在全局使用,被多个地方被调用,而且是不用声明从属的,一旦你轻易的改变其中一个属性的值,可能会影响局部的程序执行结果,程序会出错,因为你不确定在什么被调用或者在哪调用过。这样程序中,两个好无联系的模块,可能会存在隐藏的耦合性。
也正是因为单例的全局性和状态性,需要我们谨慎的去使用单例。在面向对象的编程中,我们需要尽可能减少可变状态的作用域,而单例与这个思想是背道而驰,下次使用单例考虑一下是否这个变量真正值得成为一个单例,尽力减少模块之间的耦合性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值