【Java编程】 设计模式 -- 单例设计模式

思想:

  1. 为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象
  2. 为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象
  3. 为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式

代码体现:

  1. 将构造函数私有化
  2. 在类中创建一个本类对象
  3. 提供一个方法可以获取到该对象

代码一

先初始化对象

称为:饿汉式

Single类一进内存,就已经创建好了对象。

public class SingleModeDemo {

	public static void main(String[] args){

	}
}

class Single{

	private Single(){}

	private static Single s = new Single();

	public Single getInstance(){
		return s;
	}
}

代码二

对象是方法被调用时,才初始化,也叫作对象的延时加载。

称为:懒汉式

Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象

public class SingleModeDemo {

	public static void main(String[] args){
		System.out.println("Hello world");
	}
}

class Single{

	private static Single s = null;

	private Single(){}

	public static synchronized Single getInstance(){
	        if(s==null){
	            synchronized(Single.class){
	                if(s==null)
	                    s = new Single();
	            }
	        }
	return s;
	}
}

原则:定义单例,建议使用饿汉式

时间: 2025-01-18 12:12:40

【Java编程】 设计模式 -- 单例设计模式的相关文章

Java软件设计模式------单例设计模式

Java软件设计模式一共分为23种; 一般常用的有: 单例设计模式 装饰设计模式 工厂设计模式 单例设计模式(以后的用处:spring框架IOC,默认创建的对象都是单例的): 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案. 单例设计模式分为两种(饿汉式和懒汉式): ①饿汉式(常用): 特

笔记:Java中的单例设计模式

之前接触过单例模式,当初不明白这样的设计用意,今天特地研究了下java中的单例设计模式的用处及用法. 单例模式:单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.一个类有且仅有一个实例,并且自行实例化向整个系统提供. 单例模式的用处:一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务:一个系统只能有一个窗口管理器或文件系统:一个系统只能有一个计时工具或ID(序号)生成器.如在Windows中就只能打开一个任务管理器.如果不使用机制对窗口对象进行唯一化,将

java设计模式--单例设计模式

java中共有21种设计模式,其中面试中常问的是单例设计模式: 单例设计模式有两种常用的方式:1.懒汉式:1)先私有化构造函数,让此类不能被实例化:(private 类名(){}):2)在类中自己实例化一个空的对象:(private static 类名  对象名=null;):3)构造一个方法,返回本类的对象:在中间增加一个判断语句,如果进来的对象是个空值,就new一个实例化,否则直接返回此对象: 例如: /** * 懒汉式 * @author chenjun *2017-5-2上午9:16:0

Java面向对象_单例设计模式

单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点 1.构造方法私有化 2.声明一个本类对象 3.给外部提供一个静态方法获取对象实例 两种实现方式:饿汉式和懒汉式 何种情况下使用呢?当一个类中没有属性(对象的状态):该类作为工具类使用非常频繁: 好处:节省内存(因为不断创建对象会消耗内存) 1 public class Practice14 { 2 3 public static void main(String[] args) { 4 // TODO Auto-generate

Java学习之单例设计模式

单例设计模式:解决一个类在内存只存在一个对象. (1) 想要保证对象唯一. a)为了避免其他程序过多建立该类对象.先禁止其他程序建立该类对象 b)还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象. c)为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式. (2) 这三部怎么用代码体现呢? a)将构造函数私有化. b)在类中创建一个本类对象. c)提供一个方法可以获取到该对象. (3) 对于事物该怎么描述,还怎么描述. 当需要将该事物的对象保证在内存中唯一时,就将以上的三

Java中的单例设计模式举例

本例中通过将构造函数私有化的方式将实例化对象的代码放到类内部的静态函数中,从而实现单例设计模式. class Singleton { static Singleton instance = new Singleton(); private Singleton() { } public static Singleton getInstance() { return Singleton.instance; } public void func() { System.out.println("Hi t

java软件设计模式——单例设计模式中的【饿汉式】与 【懒汉式】示例

以下为单例设计模式中的两种经典模式的代码示意: 1 单例设计模式(spring框架IOC,默认创建的对象都是单例的): 2 饿汉式: 3 public class SingleClass { 4 private SingleClass(){} //私有化构造方法 不能new对象 5 private static final SingleClass s=new SingleClass(); 6 //返回本类对象 7 public static SingleClass getInstance(){

Java设计模式—单例设计模式(Singleton Pattern)全然解析

转载请注明出处:http://blog.csdn.net/dmk877/article/details/50311791 相信大家都知道设计模式,听的最多的也应该是单例设计模式,这种模式也是在开发中用的最多的设计模式,可能有非常多人会写几种设计模式.那么你是否知道什么是设计模式?为什么会有单例设计模式即它的作用是什么?单例模式有哪些写法?对于这种问题.可能有部分童鞋并不能非常好的回答,没关系今天就和大家一起来具体的学习下单例设计模式,相信通过学习本篇你将对单例设计模式有个具体的理解. 如有谬误欢

Java设计模式——单例设计模式

单例设计模式 概述 ? 某个类有且只能有一个对象,如:用这个对象记录只有一个用户的信息 饿汉式 步骤 private构造方法 设计一个private static的当前类的对象,并new 提供一个static方法,返回一个当前类的对象 代码 /** * 单例模式 * 饿汉式 */ public class Program1 { public static void main(String args[]) { User user = User.getInstance(); //测试部分 for (

java面试题 单例设计模式

单例设计模式 某个类必须只有一个实例 (构造器私有化) 类必须自行创建实例(含有一个该类的静态变量存储该实例) 类自行向其他类提供这个实例  (对外提供获取该实例对象的方式) 饿汉式 在类初始化的时候直接创建对象  不存在线程安全问题  1.直接实例化饿汉式(简洁直观)   2.静态代码块饿汉式(适合复杂实例化)   3.枚举式(最简洁) 1 1 public class Singleton1 { 2 public final static Singleton1 singleton = new