标签:main 设计模式 man this nbsp void 单例设计模式 div 构造方法
单例设计模式:构造方法私有化,在类的内部定义static属性和方法,利用static方法来取得本类的实例化对象;无论外部产生多少个实例化对象,本质上只有一个实例化对象
饿汉式单例设计
class Singleton{ private static final Singleton INSTANCE = new Singleton();//产生一个实例化对象 private Singleton(){}//封装构造方法 public static Singleton getInstance(){ return INSTANCE;//取得实例化对象 } public void print(){ System.out.print("hello word"); } } public class Test{ public static void main(String args[]){ Singleton s = Singleton.getInstance();//无论调用多少次getInstance()方法,产生的实例化对象都是相同的 s.print(); } }
懒汉式设计模式
class Singleton{ private static final Singleton INSTANCE;//定义一个未实例化的本类对象 private Singleton(){}//封装构造方法 public static Singleton getInstance(){ if(INSTANCE == null){ INSTANCE = new Singleton(); } return INSTANCE;//取得实例化对象 } public void print(){ System.out.print("hello word"); } } public class Test{ public static void main(String args[]){ Singleton s = Singleton.getInstance();//无论调用多少次getInstance()方法,产生的实例化对象都是相同的 s.print(); } }
多例设计模式:构造方法私有化,产生特定个数对象
class Sex{ private String sex; private static final Sex MAN = new Sex("男"); private static final Sex WOMAN = new Sex("女"); private Sex(String sex){ this.sex = sex; } public static Sex getInstance(int ch){ switch(ch){ case 1: return MAN; case 2: return WOMAN; default: return null; } } public String toString(){ return sex; } } public class Test{ public static void main(String args[]){ Sex s = Sex.getInstance(1); System.out.println(s); } }
标签:main 设计模式 man this nbsp void 单例设计模式 div 构造方法
原文地址:http://www.cnblogs.com/hu1056043921/p/7340656.html