java GOF23设计模式-饿汉式和懒汉式

单例模式:保证一个类只用一个相同的实例,并且提供一个访问该实例的全局访问方法
如任务管理器、回收站
饿汉式:
把构造器私有,则别人无法访问
同时提供一个私有的创建好的static的该实例属性
提供一个开放的方法返回该实例

public class Design {
    private static Design d =new Design();  //类初始化时,立即加载这个对象,没有延迟加载的优势
    //即不使用对象会造成资源浪费

    private Design()
    {

    }
    public static Design getInstance()  //因为实在类加载器时创建的实例,此时线程绝对安全,所以不用加synchronized锁住保证一个对象
    {
        return d;
    }

    /*懒汉式:延迟调用,即调用时创建实例
     private static Design dd;
     private Design(){};
     public static synchronized Design getInstance()  //可能有多个线程调用,即可能null同时创建多个对象,所以得锁住
     {
        if(s==null)
        {
            s= new Design();
        }
        return s;
     }

 */

}

原文地址:https://blog.51cto.com/14437184/2439988

时间: 2024-07-29 23:45:35

java GOF23设计模式-饿汉式和懒汉式的相关文章

java GOF23单例模式-饿汉式图

原文地址:https://blog.51cto.com/14437184/2439983

设计模式-单例模式(饿汉式及懒汉式的Java实现)

单例模式 单例模式在程序设计中使用的频率非常之高,其设计的目的是为了在程序中提供唯一一个对象(保证只被构造一次),例如写入日志的log对象,windows的任务管理器实现(只能打开一个).这里主要介绍单例模式使用Java的实现(包括饿汉式及懒汉式). 实现 这里使用Log类作为例子,Log对象需要在程序中只有一个对象且只初始化一次. 饿汉式 饿汉式的单例模式理解起来是比较容易的,就是在单例类加载的时候就初始化需要单例的对象.实现也比较容易. public class Singleton{ pri

java学习之单例模式(饿汉式与懒汉式)

---恢复内容开始--- 设计模式:解决某一类问题最行之有效的方法 java中有23种设计模式 今天学习其中一种:单例设计模式:解决一个类在内存只存在一个对象 想要保证对象唯一. 1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 2.还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象 3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式 这三部分用代码体现: 1.将构造函数私有化 2.在类中创建一个本类对象 3.提供一个方法可以获取到该对象 packag

Java-Singleton(单例创建-饿汉式,懒汉式)

package com.easygo.singleton; /** * Java单例有两种方式,饿汉式和懒汉式,饿汉式是在对象创建之前加载,优先于对象,而懒汉式是在对象创建完成后调用对象的方法来创建对象 * ,了解JVM加载原理的都清楚,正真意义上的单例是饿汉式,在对象创建之前加载. * @author lx * */ public class Singleton { //饿汉式 public static Singleton singleton=null; static { singleton

java===单类设计模式之饿汉式与懒汉式

package cn.china; public class Single { public static void main(String[]args){ // S singles=S.getInstance(); // S singless=S.getInstance(); // System.out.println(singles==singless); Test tt=Test.getInstance(); Test ttt=Test.getInstance(); tt.setNum(1

单例设计模式之饿汉式与懒汉式

/* 设计模式:对问题行之有效的解决方式.其实它是一种思想. 1,单例设计模式. 解决的问题:就是可以保证一个类在内存中的对象唯一性. 必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性. 如何保证对象唯一性呢? 1,不允许其他程序用new创建该类对象. 2,在该类创建一个本类实例. 3,对外提供一个方法让其他程序可以获取该对象. 步骤: 1,私有化该类构造函数. 2,通过new在本类中创建一个本类对象. 3,定义一个公有的方法,将创建的对象返回. */ //饿汉式 class

Java---15---单例设计模式:---饿汉式和懒汉式

概念: 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例.   单例模式有以下特点: 1.单例类只能有一个实例 2.单例类必须自己给自己创建自己的唯一实例 3.单例类必须给所有其他对象提供这一实例 饿汉式: /*饿汉式*/ class Single { private static final Single s = new Single(); private Single () {} public static Single getInstance() { return s

JAVA中的饿汉式和饱汉式单例模式及jdk中Runtime类的单例模式实现方式详解

一.描述 单例模式是一种非常常见的设计模式,即一个类只能有一个对象(实例),一般通过将该类的构造器私有化,来阻止在该类外创建该类的对象,并提供给外界一个唯一的对象(这个对象在该类中创建). java中的单例模式常见的有两种实现方式,一种是恶汉方式,即将该类对象用static休息并且在类加载的时候进行初始化:另一种是饱汉方式,在程序中需要用到该对象的时候才初始化,一旦初始化一次就不会再重新生成该对象. JDK中的Runtime类其实也是一种单例模式,而且其采用的是饿汉的方式. 二.源代码 pack

关于单例(饿汉式与懒汉式)

饿汉式单例: 1 package com.mon11.day27.single; 2 /** 3 * 类说明 : 4 * @author 作者 :chenyanlong 5 * @version 创建时间:2017年11月27日 6 */ 7 public class SingleTon { 8 // 饿汉式 线程全 9 private static SingleTon singleTon=new SingleTon(); 10 /*1.构造方法私有化*/ 11 private SingleTo