JAVA设计模式之【单例模式】
生活随笔
收集整理的這篇文章主要介紹了
JAVA设计模式之【单例模式】
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
任務(wù)管理器案例
1.單例類
package Singleton;/*** Created by Jim on 2016/9/28.*/ public class TaskManager {private static TaskManager tm = null;private TaskManager() {System.out.println("創(chuàng)建任務(wù)管理器");}public void displayProcesses() {System.out.println("顯示進(jìn)程");}public void displayServices() {System.out.println("顯示服務(wù)");}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("第一次辦理身份證,分配新號(hào)碼!");instance=new IdentityCardNo();instance.setIdentityCardNo("No400011112222");}else{System.out.println("重復(fù)辦理身份證,獲取舊號(hào)碼!");}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("身份證號(hào)碼是否一致:" + (no1==no2));String str1,str2;str1=no1.getIdentityCardNo();str2=no1.getIdentityCardNo();System.out.println("第一次號(hào)碼:" + str1);System.out.println("第二次號(hào)碼:" + str2);System.out.println("內(nèi)容是否相等:" + str1.equalsIgnoreCase(str2));System.out.println("是否是相同對(duì)象:" + (str1==str2));}catch(Exception e){System.out.println(e.getMessage());}} }執(zhí)行結(jié)果:
第一次辦理身份證,分配新號(hào)碼!
重復(fù)辦理身份證,獲取舊號(hào)碼!
身份證號(hào)碼是否一致:true
第一次號(hào)碼:No400011112222
第二次號(hào)碼:No400011112222
內(nèi)容是否相等:true
是否是相同對(duì)象: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("創(chuàng)建打印池!");instance=new PrintSpoolerSingleton();}else{throw new PrintSpoolerException("打印池正在工作中!");}return instance;}public void manageJobs(){System.out.println("管理打印任務(wù)!");} }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());}} }執(zhí)行結(jié)果:
創(chuàng)建打印池!
管理打印任務(wù)!
--------------------------
打印池正在工作中!
轉(zhuǎn)載于:https://www.cnblogs.com/jiqing9006/p/5918556.html
總結(jié)
以上是生活随笔為你收集整理的JAVA设计模式之【单例模式】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦到爬高下不来怎么回事
- 下一篇: jqueryui dialog asp.