话不多说,直接上代码
package com.yc123;
public class SingleCase {
public static void main(String[] args) {
}
}
/**
* 举例一:饿汉模式(有一个对象的算饿汉,那我不是饿死鬼 笑哭)
*/
class SingleCase1{
//私有化构造函数
private SingleCase1(){
}
//创建一个私有的方法用来 创建对象
private static SingleCase1 single(){
return new SingleCase1();
}
//创建一个共有方法,访问私有方法得到对象
public static SingleCase1 getSingle1(){
return single();
}
}
/**
* 举例二:线程安全模式
*/
class SingleCase2{
//创建一个变量名
private static SingleCase2 instance;
//依然是构造函数私有化
private SingleCase2(){
}
//写一个共有方法,对类的对象进行提供,对该方法加 程序锁 synchronized
public static synchronized SingleCase2 getsingle2(){
//判断当前对象是否 有效
if(instance == null){
instance =new SingleCase2();
}
return instance;
}
}
/**
* 举例三:创建内部类方法
*/
class SingleCase3{
//依旧先构造函数私有化
private SingleCase3(){
}
//创建一个私有内部类
private static class Inner{
private static SingleCase3 instance = new SingleCase3();
}
public static SingleCase3 getInstance(){
SingleCase3 singleEnt = Inner.instance;
return singleEnt;
}
}