黑马程序员技术交流社区
标题:
什么是单例模式
[打印本页]
作者:
发现的眼睛
时间:
2015-7-13 14:00
标题:
什么是单例模式
关于单例设计模式我不理解这是干什么的,求讲解。
*/
//饿汉式。
/*
class Single
{
作者:
路途
时间:
2015-7-13 14:15
单例设计模式:解决一个类在内存中只存在一个对象。保证唯一性:
1.先控制禁止其他程序建立该对象。
2.还为了其他程序可以为访问该类对象,在本类中自定义一个对象。
3.为了方便其他其程序对自定义对象的访问,可以对外提供一些访问方式。
对应操作:
1.将构造函数私有化。
2.在本类中创建一个本类对象(私有并且static)。
3.提供一个方法可以获取到该类对象。
构造函数私有化:
私有构造函数只能在函数内部调用,外部不能实例化,所以私有构造函数可以防止该类在外部被实例化。
单例化有两种方式:饿汉式和懒汉式
饿汉式:先初始化对象 ,A类一进入内存便建立一个对象
class A {
private A(){}
private static A s = new A();
public static A getInstance(){
return s;
}
}
懒汉式:对象是方法调用时,才初始化:
class A {
private static A s = null;
private A(){}
public static A getInstance(){
if(s==null)
s = new A();
return s;
}
}
补充(多线程部分内容):
单例模式就是为了使用这个对象,那么一般使用饿汉式,且安全。
单例设计模式中懒汉式:延迟加载。
在多线程访问是会出现问题,会出现效率低下。使用双重否定来解决(减少锁的判断次数)。
synchronized 同步。懒汉式加入以后比较慢。
if(s == null){
synchronized(A.class){
if(s == null)
{
s = new A();
}
}
}
大体是这样.....
作者:
小丑
时间:
2015-7-13 16:15
设计模式(Design pattern)简单来理解的话,其实就是前人所总结的一些经验和思想,给我们提供了从抽象到具体的方法。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
作者:
云雀
时间:
2015-7-13 16:31
好像就是不让外界创建对象,而提供一个对象
作者:
zhwfa1991
时间:
2015-7-13 16:33
只允许内存中同时只存在一个对象而已
作者:
发现的眼睛
时间:
2015-7-18 16:26
大家回答的都很好
作者:
为了理想而奋斗
时间:
2015-7-18 17:09
又重新脑补了下。谢谢分享
作者:
不怕黑人
时间:
2015-7-18 18:31
回顾一下
作者:
wengjialiang
时间:
2015-7-18 19:29
就是这个类只能有自己内部建立的一个对象,外界不能建立,只能调用这个类里面的对象
作者:
落叶随尘
时间:
2015-7-18 19:33
说的都很好 同时也温习了一下
作者:
陈建民1
时间:
2015-7-18 19:40
解释内容很详细,赞一个
作者:
扶摇丶
时间:
2015-7-18 20:39
还没学,看一下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2