设计模式之-单例模式

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

对于频繁使用的类,避免每次new和delete操作。取代全局变量,防止多线程安全隐患。遵循面向对象封装原则。概念:保证一个类只有一个实例,并提供一个访问它的全局访问点。《设计模式:可复用面向对象软件的基础》实现:1、将构造函数的访问权限标记为protected或private;2、类中定义一个static函数,返回在类内部唯一构造的实例。singleton.hsingleton.cppmain.cppSingleton*Singleton::Instance(){if(_instance==0){_instance=newSingleton();}return_instance;}Singleton*Singleton::Instance(){lock();if(_instance==0){_instance=newSingleton();}unlock();return_instance;}Singleton*Singleton::Instance(){lock();if(_instance==0){_instance=newSingleton();}unlock();return_instance;}Singleton*Singleton::Instance(){if(_instance==0){lock();if(instance==0){_instance=newSingleton();}unlock();}return_instance;}一般不用处理单例的销毁,程序关闭之后,会释放单例占用的内存资源。特殊情况:文件锁、文件句柄、数据库连接,这些资源不随程序的关闭而自动关闭,必须手动释放。巧妙实现:单例模式常常与工厂模式结合使用,因为工厂只需要创建产品实例。特点:1.减少了时间和空间的开销(new实例的开销)。2.提高了封装性,使得外部不易改动实例。3.懒汉式是以时间换空间。4.饿汉式是以空间换时间。

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功