JAVA设计模式之【单例模式】
生活随笔
收集整理的這篇文章主要介紹了
JAVA设计模式之【单例模式】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
任務管理器案例
1.單例類
package Singleton;/*** Created by Jim on 2016/9/28.*/ public class TaskManager {private static TaskManager tm = null;private TaskManager() {System.out.println("創建任務管理器");}public void displayProcesses() {System.out.println("顯示進程");}public void displayServices() {System.out.println("顯示服務");}public static TaskManager getInstance() {if (tm == null) {tm = new TaskManager();}return tm;}}2.客戶端
package Singleton;public class Client {public static void main(String args[]){try{TaskManager tm = TaskManager.getInstance();tm.displayProcesses();tm.displayServices();TaskManager tm2 = TaskManager.getInstance();tm2.displayProcesses();tm2.displayServices();}catch(Exception e){System.out.println(e.getMessage());}} }身份證辦理案例
1.單例類
package Singleton;/*** Created by e550 on 2016/9/29.*/ public class IdentityCardNo {private static IdentityCardNo instance=null;private String no;private IdentityCardNo(){}public static IdentityCardNo getInstance(){if(instance==null){System.out.println("第一次辦理身份證,分配新號碼!");instance=new IdentityCardNo();instance.setIdentityCardNo("No400011112222");}else{System.out.println("重復辦理身份證,獲取舊號碼!");}return instance;}private void setIdentityCardNo(String no){this.no=no;}public String getIdentityCardNo(){return this.no;} }2.客戶端類
package Singleton;public class Client {public static void main(String args[]){try{IdentityCardNo no1,no2;no1=IdentityCardNo.getInstance();no2=IdentityCardNo.getInstance();System.out.println("身份證號碼是否一致:" + (no1==no2));String str1,str2;str1=no1.getIdentityCardNo();str2=no1.getIdentityCardNo();System.out.println("第一次號碼:" + str1);System.out.println("第二次號碼:" + str2);System.out.println("內容是否相等:" + str1.equalsIgnoreCase(str2));System.out.println("是否是相同對象:" + (str1==str2));}catch(Exception e){System.out.println(e.getMessage());}} }執行結果:
第一次辦理身份證,分配新號碼!
重復辦理身份證,獲取舊號碼!
身份證號碼是否一致:true
第一次號碼:No400011112222
第二次號碼:No400011112222
內容是否相等:true
是否是相同對象:true
打印池
1.打印池類
package SpoolerSingleton;public class PrintSpoolerSingleton {private static PrintSpoolerSingleton instance=null; // 打印池private PrintSpoolerSingleton(){}public static PrintSpoolerSingleton getInstance() throws PrintSpoolerException{if(instance==null){System.out.println("創建打印池!");instance=new PrintSpoolerSingleton();}else{throw new PrintSpoolerException("打印池正在工作中!");}return instance;}public void manageJobs(){System.out.println("管理打印任務!");} }2.異常輔助類
package SpoolerSingleton;public class PrintSpoolerException extends Exception {public PrintSpoolerException(String message){super(message);} }3.客戶端類
package SpoolerSingleton;public class Client {public static void main(String a[]){PrintSpoolerSingleton ps1,ps2;try{ps1=PrintSpoolerSingleton.getInstance();ps1.manageJobs();}catch(PrintSpoolerException e){System.out.println(e.getMessage());}System.out.println("--------------------------");try{ps2=PrintSpoolerSingleton.getInstance();ps2.manageJobs();}catch(PrintSpoolerException e){System.out.println(e.getMessage());}} }執行結果:
創建打印池!
管理打印任務!
--------------------------
打印池正在工作中!
轉載于:https://www.cnblogs.com/jiqing9006/p/5918556.html
總結
以上是生活随笔為你收集整理的JAVA设计模式之【单例模式】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到爬高下不来怎么回事
- 下一篇: jqueryui dialog asp.