单态设计模式
来源:互联网 发布:visio for mac dmg 编辑:程序博客网 时间:2024/05/16 11:25
在实际开发中常用到,比如数据库的链接。使用Singleton模式可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收。
单子设计模式创建一个类,应满足:
*为了避免其他程序建立该类对象,先禁止其他程序建立该类对象,即将构造函数私有化
*为了其他程序访问到该类对象,须在本类中创建一个该类私有对象
*为了方便其他程序访问到该类对象,可对外提供一个公共访问方式
Runtime类就是单例设计模式。
单例设计模式的两种方式
A:饿汉式 当类加载的时候,就创建对象。
class Single{
private Single(){}//将构造函数私有化,不让别的类建立该类对象
private static final Single s=new Single();//自己建立一个对象
public static Single getInstance()//提供一个公共访问方式
{
return s;
}
}
B:懒汉式 当使用的使用,才去创建对象。
class Single{
private Single(){
}
private static Single s;
public static Single getInstance()
{
if(s==null)
s=new Single();
return s;
}
}
饿汉式和懒汉式的区别:
饿汉式是类一加载进内存就创建好了对象;
懒汉式则是类才加载进内存的时候,对象还没有存在,只有调用了getInstance()方法时,
对象才开始创建。
懒汉式是延迟加载,如果多个线程同时操作懒汉式时就有可能出现线程安全问题,解决线程安全问题
可以加同步来解决。但是加了同步之后,每一次都要比较锁,效率就变慢了,
所以可以加双重判断来提高程序效率。
如将上述懒汉式的Instance函数改成同步:
public static Single getInstance(){
if(s==null){
synchronized(Single.class){
if(s==null)
s=new Single();
}
}
return s;
}
注:开发常用饿汉式,因为饿汉式简单安全。懒汉式多线程的时候易发生问题
- 单态设计模式
- 单态设计模式
- 单态设计模式
- 单态设计模式
- 单态设计模式
- 单态设计模式
- 单态设计模式
- 单态设计模式
- 单态设计模式
- 单态设计模式
- 设计模式 - 单态模式
- 设计模式-单态模式
- Singleton(单态设计模式)
- Java-单态设计模式
- Java-单态设计模式
- 设计模式--单态(Singleton)
- java单态设计模式
- 设计模式之单态
- SpringCloud 教程 | 第五篇:路由网关(zuul)
- Android View的事件分发机制探索
- java操作符
- Keras 学习心得
- 如何使用 Jenkins、GitHub 和 Docker 在 Azure 中的 Linux VM 上创建开发基础结构
- 单态设计模式
- weblogic详解
- 堆
- Bean 作用域
- Java 单例模式的3种写法
- linux驱动之定时器的使用
- C++ stringstream实现不同类型数据的转换
- Java 集合深入理解(16):HashMap 主要特点和关键方法源码解读
- kafka浅谈