为什么使用单例模式:在没有看下面以前,自个儿想一下,为什么使用????
为什么好多考官都要考单例模式,现将自已的理解做一下简单介绍:
其实程序最初的思想是用NEW去创建一个实例对象,然后我们使用这个实例对象去做一些相关的操作,那如果有多个线程同时访问,那意味着要NEW多个实例对象,这样不仅使服务器性能下降,而且占用内存会越来越大,线程越多,占用内存越大。例:
当我们需要访问的时候总是需要NEW一个CONNECT实例,然后才能用实例进行增删改的相关操作,然而这对于一个WEB客户端,在每次访问的时候都会在服务器端启动一个线程进行相关处理,这意味着,假如有一万个Web客户端将要启动一万个线程都去访问服务器,那将会,NEW一万个实例对象,这样不仅是非常占内存,而且性能也会急剧下降,后果可想而知......,因此优秀的程序员们绞尽脑汁的去优化自已的程序。有人提问:在这一万个WEB客户端线程间,是否能将CONNECT只用一个实例,让每一个WEB客户端都去访问这个连接?答案就是单例。如果我们创建一个单例程序,然后在服务器启动后,自始自终,服务器只对某个类进行一次实例,这就是单例。它不仅能节省服务器的内存,也能提高服务器的性能。如果平凡的使用NEW也会耗相当大的内存,所以在能够多个线程之间共用一个对象的时候,尽量用单例模式去实现该程序。
SPRING是我们每个人都非常熟知的开源框架。SPRING中大量使用了单例去初始化一些BEAN。这使得我们N多WEB客户端在请求的时候不需要在NEW一些东西,只需要去得到单例的对象去操作,就可以了,它的依赖注入也只是将这些单例的实例对象得到然后进行注入到另一个对象,进行使用。
Ext JS中也使用了不少的单例模式,JS使用单例,可以对客户浏览器中的内存得到充分的利用。
以上只为个人理解,如有不恰当处,还望大家批评指正。
分享到:
相关推荐
为什么要使用PHP单例模式及应用实例.docx为什么要使用PHP单例模式及应用实例.docx
使用单例模式创建学生管理系统(饿汉式、懒汉式)
C#中, 使用单例模式设计计数器
ActionScript 3.0里使用单例模式 ActionScript 3.0里使用单例模式
使用原生JavaScript写的单例小模式,适用于大多数的form表单中。
分享一个php使用单例模式实现mysql类,封装mysql操作类,包括连接功能,及查询功能,封装getAll,getRow,getOne,afftect_rows()方法。
一个php使用单例模式实现mysql类,封装mysql操作类,包括连接功能,及查询功能,封装getAll,getRow,getOne,afftect_rows()方法。
几种单例模式的书写方式
在Java应用中,单例对象能保证在一个...3、有些像交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了,只有使用单例模式,才能保证核心交易服务器独立控制整个流程。 CSDN代码的详细解释。
1. 单例对 OOP 特性的支持不友好 2. 单例会隐藏类之间的依赖关系 3. 单例对代码的扩展性不友好 4. 单例对代码的可测试性不友好 5. 单例不支持有参
C++11实现线程安全的单例代码和测试代码,包含singleton.h,main.cpp,希望帮助到大家。
引入该文件之后,写的单例文件就不必再自己重写很多的函数,该文件中将很多函数的定义写已经写好,而且比自己写的标准,这里强烈建议。具体使用方法在该文件中有说明。
单例模式的七种实现方法以及分析,可以作文大作业提交 ...3.6使用静态内部类实现单例模式 12 3.7使用枚举类实现单例模式 13 4.单例模式怎么用才合理? 14 4.1测试 14 4.2无边界 15 5.设计模式学习总结: 15
单例模式的简单了解文档,以及代码中怎么使用单例模式。
不同单例模式的详细讲解,了解使用单例的最佳方式。
此示例展示了Qml 的单例模式(类似全局对象,只生成一次实例,可全局使用) surfsky.cnblogs.com
一个大牛写的控制重复播放的单例类,使用的时候直接包含使用单例的方法就可以解决 多视图叠加播放的问题
在Android开发中很少有activity service broadcast 单例的综合使用,我写的这个例子已经能运行了希望能和大家交流学习
饿汉模式、懒汉模式、DCL单例模式、枚举;不同情况下使用不同的单例创建模式
在努力创建更有效的代码时,Java 程序员们创建了双重检查锁定习语,将其和单例创建模式一起使用,从而限制同步代码量。然而,由于一些不太常见的 Java 内存模型细节的原因,并不能保证这个双重检查锁定习语有效。 ...