「singleton」singleton模式
今天我们来聊聊singleton,以下6个关于singleton的观点希望能帮助到您找到想要的百科知识。
本文目录
c++ 什么是singleton
单例模式,在spring1..x中,当bean对象的singleton属性为true时,意味着在spring的bean管理池中,只保持一个该bean对象的实例;当bean对象的singleton属性为false时,意味着在spring的bean管理池中,为每一个针对该bean对象的请求都保持一个实例。
什么是singleton单例模式
singleton英[ˈsɪŋgltən]美[ˈsɪŋɡəltən]n.一个,独身,单独;[网络]单例; 单例模式; 单件;[例句]Bank is a 38-year-old singleton who grew up in Philadelphia.班克是一名38岁的单身汉,在费城长大。[其他]复数:singletons
什么是Singleton
顾名思义,Singleton就是确保一个类只有唯一的一个实例。Singleton主要用于对象的创建,这意味着,如果某个类采用了Singleton模式,则在这个类被创建后,它将有且仅有一个实例可供访问。
在java中,singleton是什么啊?如果让写一个singleton,该怎么写呢?
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式:
定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public
class
Singleton
{
private
Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private
只供内部调用
private
static
Singleton
instance
=
new
Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public
static
Singleton
getInstance()
{
return
instance;
}
}
第二种形式:
public
class
Singleton
{
private
static
Singleton
instance
=
null;
public
static
synchronized
Singleton
getInstance()
{
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if
(instance==null)
instance=new
Singleton();
return
instance;
}
}
其他形式:
定义一个类,它的构造函数为private的,所有方法为static的。
一般认为第一种形式要更加安全些
singleton和prototype的区别
singleton作用域:当把一个Bean定义设置为singleton作用域是,Spring IoC容器中只会存在一个共享的Bean实例,并且所有对Bean的
请求,只要id与该Bean定义相匹配,则只会返回该Bean的同一实例。值得强调的是singleton作用域是Spring中的缺省作用域。
prototype作用域:prototype作用域的Bean会导致在每次对该Bean请求(将其注入到另一个Bean中,或者以程序的方式调用容器的getBean
()方法)时都会创建一个新的Bean实例。根据经验,对有状态的Bean应使用prototype作用域,而对无状态的Bean则应该使用singleton作用
域。
对于具有prototype作用域的Bean,有一点很重要,即Spring不能对该Bean的整个生命周期负责。具有prototype作用域的Bean创建后交由调
用者负责销毁对象回收资源。
简单的说:
singleton 只有一个实例,也即是单例模式。
prototype访问一次创建一个实例,相当于new。
JAVA问题:singleton是什么意思?
是java开发中常用设计模式的一种。java的设计模式有一百多种常用的有23种。就单例模式(也叫单汉模式)来说有饿汉、懒汉之分。它们的区别是前者不考虑线程直接通过静态方法返回对象,而后者反之。
今天的内容先分享到这里了,读完本文《「singleton」singleton模式》之后,是否是您想找的答案呢?想要了解更多百科知识,敬请关注本站,您的关注是给小编最大的鼓励。
下一篇:「弹簧钢材质」弹簧钢有哪些上一篇:「中法建交」中法建交60周年