单例的使用场景

单例的使用
场景一:

一个程序中有一个数据存储类,头文件和源文件分别为db.h和db.cpp。而程序中有三个线程同时往三个地方例如zb.cpp、ck.cpp、yk.cpp发送数据,而收到数据的本地需要存 储数据。

场景二:一个配置文件中存有ip地址和端口号,程序中有一个读取配置文件类config.h和config.cpp,有两个地方zb.cpp、ck.cpp需要在程序启动时加载这个配置文件获取文件中的 内容,程序运行过程中对配置文件信息的使用都要与当前配置文件保持同步。


分析:
场景一不宜用单例模式。因为三个源文件中可能同时需要存储数据,如果使用单例意味着程序中只有一个数据存储类对象不能满足三个地方同时做数据存储的需求。所以不能 用单例。
场景二需要用单例。因为程序中只有一个配置文件读取类对象能够保证程序中任意地方任意时刻使用配置文件中内容都能与当前配置文件中内容保持一致。假如zb.cpp和 ck.cpp同时保存两个配置文件读取类对象config1和config2。程序启动前两个对象分别读取了配置文件信息存储对象中。运行过程中zb.cpp对config1中的内容作了修改(也就 是对配置文件做了修改)。但是ck.cpp中的config2中的内容并没有发生变化,这样造成了config2中内容与当前配置文件不同步的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值