脚跟脚设计单件模式—第一脚

单件模式概述

四人帮在设计模式中对单件(singleton)的描述是:设计一个只存在一个实体的类,并为它提供一个全局访问点。这个类似中国社会主义初级阶段基本国策,一对夫妇“只要一个孩”,只要一个孩子好保证(狂罚款呗),要上全世界都能够看到他,是比较难的。所以单件模式设计一个全局访问点是其核心内容。

单件类的实体(单件对象)是个完全自负责的对象,生命的周期完全自控,自己负责对像自身的产生和销毁,孩子是做不到这一点。对象生命周期的管理是个复杂的概念,也是影响程序健壮性、灵活性的重要因素之一,对象该毁的时候不毁,不该毁的时候毁掉了,都会带来很大的麻烦。单件对象做到该毁的时候销毁比较容易,要避免不该毁的时候不毁就很难了。这是因为任何全局的东西,大多数都是共享的,否则就没有必要让他全局可用了,共享的对象在销毁的时候会带来很大麻烦,尤其在多线程应用中,单件对象的销毁就会变得复杂。

静态数据和静态函数并不是单件模式

 

上面基于静态数据和函数的实现看起来和单件模式的实现的功能一样,客户程序都可以通过一样的模式使用,这里最主要的问题有两个,也是单件模式的优势:
1. 静态函数不能是虚函数,使用者在不开放上述代码的情况下,很难改变它的的行为特征;
2. 最主要的问题是静态类让初始化和清理工作变得困难。

未完待续...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值