单例模式的优缺点及适应环境

主要优点:

1、提供了对唯一实例的受控访问。

2、由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。

3、允许可变数目的实例。

主要缺点:

1、由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。

2、单例类的职责过重,在一定程度上违背了“单一职责原则”。

3、滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为的单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失。

适应环境:

1、系统只需要一个实例对象

2、客户调用类的单个实例只允许适用一个公共的访问点,除了该访问点,不能通过其他途径访问该实例。

初学者本结果涉及别人博客内容 ,仅供参考!O(∩_∩)O哈哈~

时间: 2024-08-18 16:32:12

单例模式的优缺点及适应环境的相关文章

单例模式的优缺点和使用场景

文章转自:http://www.tools138.com/create/article/20150929/020009847.html 单利模式的优缺点和使用场景 首先介绍一下单例模式:     单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式.在应用这个模式时,单例对象的类必须保证只有一个实例存在.许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为.比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后

浅析单例模式与线程安全(Linux环境c++版本)

什么是单例模式 单例模式是设计模式中一种常用模式,定义是Ensure a class has only one instance, and provide a global point of access to it.(确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例) 用<设计模式之禅>里的话说,就是,在一个系统中,要求一个类有且仅有一个对象,如果出现多个就会出现"不良反应",比如以下情景可能会用到单例模式 要求生成唯一序列号的环境 在整个项目中需要一个共享

单例模式的优缺点

1.优点 (1)减少系统性能开销 (2)减少内存开支 (3)避免资源多重占用 (4)优化和共享资源 2.缺点 (1)扩展性差 (2)测试不利 (3)与单一职责原则冲突

单例模式(Java)

//单例模式 public class Singleton { private static Singleton s; private Singleton(){ } public static Singleton getSingleton(){ if(s ==null){ s=new Singleton(); } return s; } //测试 public static void main(String[] args){ Singleton s=Singleton.getSingleton(

【白话设计模式四】单例模式(Singleton)

转自:https://my.oschina.net/xianggao/blog/616385 0 系列目录 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二]外观模式(Facade) [白话设计模式三]适配器模式(Adapter) [白话设计模式四]单例模式(Singleton) [白话设计模式五]工厂方法模式(Factory Method) [白话设计模式六]抽象工厂模式(Abstract Factory) [白话设计模式七]策

单例模式详解

1 为什么有的工具类使用单例不使用static呢? 首先你要明白static 是在什么时候初始化的,其设计意图是是什么, 单例 就是我们运行的当前虚拟机中有且只有一个需要的对象,不存在重复. static 是给类静态成员变量使用的,属于类的属性,一般是一些常量之类的东西,从加载上来说对于类和对象之间,在类加载到内存时候静态成员变量就存在了,而对象还不存在, 另外 静态方法只能调用静态方法和静态变量这个你也应该知道,如果全部搞成静态方法那么意味着其他成员变量都要是静态的,很不方便,如果一天不要单例

【设计思想】单例模式

单例模式(Singleton Pattern 单件模式或单元素模式) 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 单例模式是一种常见的设计模式,在计算机系统中,线程池.缓存.日志对象.对话框.打印机.数据库操作.显卡的驱动程序常被设计成单例. 单例模式分3种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下3个特点: 1.只能有一个实例. 2.必须自行创建这个实例. 3.必须给其他对象提供这一实例. 那么为什么要使用PHP单例模式? PHP一个主要应用场合就是应

设计模式:单例模式

概述:像Windows系统的任务管理器一样,你无论打开多少次,始终显示的一个窗口.如何保证一个类只有一个实例并且这个实例易于被访问呢,定义一个统一的全局变量可以确保对象随时可以被访问,但不能防止创建多个对象.一个最好的办法就是让类自身负责创建和保存它的唯一实例,并保证不创建其他实例,它还提供了一个访问该实例的方法,这就是单例模式的动机..一点都不鸡冻-_-||.. 单例模式的定义: 单例模式:确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例. Singleton Pattern:E

设计模式--单例模式C++实现

单例模式C++实现 1描述: 单例模式,又称单件模式. 定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 2具体类图描述: 2.1 StartUML内部生成模式类图 该类图由StartUML逆向生成C++代码 class Singleton {public:    static Singleton* Instance(); protected: Singleton(); private:    static Singleton *instance;}; Singleton