Java面向对象高级特性-多态-单例模式

涎涎原创约 775 字大约 3 分钟...JavaJava

203-Java面向对象高级特性-多态-单例模式.mdopen in new window

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

概念

  • 单例模式(singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点

  • 单例模式要点:

某个类只能有一个实例

它必须自行创建这个示例

必须自行向整个系统提供这个实例

  • 单例模式实现:

拥有一个私有构造器

提供一个自身静态私有的成员变量

提供一个公有的静态公有的方法

示例代码

package com.tencent.chapter07.单例模式;

/**
 * <p>Title: Singleton</p>  
 * <p>
 *    Description: 
 *    	单例模式:类在内存中仅存在一个实例
	
		好处:
			1.节省内存
			2.共享对象
			
	           单例模式要点:
			1.某个类只能有一个实例
			2.它必须自行创建这个示例
			3.必须自行向整个系统提供这个实例
			
		实现步骤:
			1.构造函数私有化,用private修饰
			2.自行创建实例,使用private static修饰
			3.对外提供一个公有的方法,返回这个实例
 * </p>  
 * @author xianxian 
 * @date 2023年1月4日
 */
//饿汉式
public class Singleton {

	//2.自行创建实例,使用private static修饰
	private static Singleton instance = new Singleton();
	
	//1.构造函数私有化,用private修饰
	private Singleton()
	{
		
	}
	
	//3.对外提供一个公有的方法,返回这个实例
	public static Singleton getInstance()
	{
		return instance;
	}
	
}
package com.tencent.chapter07.单例模式;

/**
 * <p>Title: Singleton2</p>  
 * <p>
 *    Description: 
 *    单例模式:类在内存中仅存在一个实例
	
		好处:
			1.节省内存
			2.共享对象
			
	           单例模式要点:
			1.某个类只能有一个实例
			2.它必须自行创建这个示例
			3.必须自行向整个系统提供这个实例
			
		实现步骤:
			1.构造函数私有化,用private修饰
			2.自行创建实例,使用private static修饰
			3.对外提供一个公有的方法,返回这个实例
 * </p>  
 * @author xianxian 
 * @date 2023年1月4日
 */
//懒汉式
public class Singleton2 {

	//2.自行创建实例,使用private static修饰
	private static Singleton2 instance = null;
	
	//1.构造函数私有化,用private修饰
	private Singleton2()
	{
		
	}
	
	//3.对外提供一个公有的方法,返回这个实例
	public static Singleton2 getInstance()
	{
		if(instance == null)
		{ 
			instance = new Singleton2();
		}
		
		return instance;
	}
	
}
package com.tencent.chapter07.单例模式;

public class SingletonTest {

	public static void main(String[] args) {
		/*Singleton s1 = new Singleton();
		System.out.println(s1);//41649a55
		
		Singleton s2 = new Singleton();
		System.out.println(s2);//33d063fd*/

		Singleton s3 = Singleton.getInstance();
		Singleton s4 = Singleton.getInstance();
		System.out.println(s3);//6a2437ef
		System.out.println(s4);//6a2437ef
	}
}

分割线


相关信息

以上就是我关于 Java面向对象高级特性-多态-单例模式 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。

扩展知识

  1. Java 23种设计模式

分割线


上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4