Java设计模式之——单例模式
来源:互联网 发布:golang syscall说明 编辑:程序博客网 时间:2024/06/06 16:57
单例模式解决的问题:保证一个类在内存中的对象唯一性。
如何保证对象唯一性?
答:1、为了避免其他程序多次建立该类对象,不允许其他程序用new创建该类对象。
2、为了让其它程序可以访问到该类对象,在该类创建一个本类实例。
3、为了方便其它程序对自定义对象的访问,对外提供一个方法让其他程序可以获取该对象。
步骤:
1、用private私有化该类构造函数。
2、通过new在本类中创建一个本类对象。
3、定义一个共有的方法,将创建的对象返回。
饿汉式:
Singleton类一进内存,就已经创建好了对象(由于单例模式就是为了获取对象,安全且简单,故开发时比较常用)。
class Singleton { private Singleton() { // } private static Singleton s = new Singleton(); public static Singleton getInstance() { return s; }}class SingleDemo { public static void main(String[]) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1==s2); }}
懒汉式:
Singleton类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象(又称为延时加载,开发时几乎不用)。
懒汉式的弊端:在多个对象同时调用getInstance方法时,需要加锁,故效率不高。
class Singleton { private Singleton() { } private static Singleton s = null; public static Singleton getInstance() { if(s == null) { //第一次为null;之后不为null,不会执行 synchronized(Singleton.class) { if(s == null) { //二次判断 s = new Singleton(); //实例化一个Singleton对象,之后不再实例化 } } return s; } }}class SingleDemo { public static void main(String[]) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1==s2); }}
0 0
- Java—JAVA设计模式之单例模式
- Java[设计模式]之美——单例模式
- java设计模式之——单例模式
- Java设计模式透析之——单例模式
- Java设计模式之——单例模式
- Java设计模式之——单例模式
- Java设计模式之——单例模式
- Java设计模式之——单例模式
- JAVA——设计模式之单例模式
- Java设计模式之——单例模式
- 设计模式之—单例模式(Singleton)-Java实现
- 设计模式之—单例模式(Singleton)-Java实现
- 设计模式之—单例模式
- 设计模式之—单例模式
- 设计模式之—单例模式
- 设计模式之—单例模式
- 设计模式之—单例模式
- Java 设计模式—单例模式
- 简单测试一下go(golang) 和libtask 协程的切换效率
- 矩形合并
- 学习hadoop(3)join日志
- ubuntu安装redis
- 黑马程序员———面向对象之多态、抽象类和接口
- Java设计模式之——单例模式
- 基于OpenCV的目标物体颜色及轮廓的识别方法
- hdu 5289 Assignment(RMQ,单调队列,multiset)
- Socket开发
- coj 1155: |a-b|
- KMP算法详解
- JQuery中wrap,wrapAll,wrapInner的区别
- UNIX环境高级编程之第4章:文件和目录
- 阿里巴巴产品实习生N天