日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

笔记:Java中的单例设计模式

發布時間:2025/1/21 java 87 豆豆
生活随笔 收集整理的這篇文章主要介紹了 笔记:Java中的单例设计模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????之前接觸過單例模式,當初不明白這樣的設計用意,今天特地研究了下java中的單例設計模式的用處及用法。

????????單例模式:單例模式是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱為單例類的特殊類。一個類有且僅有一個實例,并且自行實例化向整個系統提供。

????????單例模式的用處:一個系統中可以存在多個打印任務,但是只能有一個正在工作的任務;一個系統只能有一個窗口管理器或文件系統;一個系統只能有一個計時工具或ID(序號)生成器。如在Windows中就只能打開一個任務管理器。如果不使用機制對窗口對象進行唯一化,將彈出多個窗口,如果這些窗口顯示的內容完全一致,則是重復對象,浪費內存資源;如果這些窗口顯示的內容不一致,則意味著在某一瞬間系統有多個狀態,與實際不符,也會給用戶帶來誤解,不知道哪一個才是真實的狀態。因此有時確保系統中某個對象的唯一性即一個類只能有一個實例非常重要。http://baike.baidu.com/view/1859857.htm

????例子代碼如下:

????????

????????????????public class TestSingleMode {

?????????????????????????public static void main(String[] args) {
??
??? ????????????????????Singleton s1 = null ;//創建對象s1
??? ????????????????????Singleton s2 = null ;//創建對象s2
??????????????????????? s1 = Singleton.getInstance() ;//把類中的實例化對象傳遞給s1
??????????????????????? s1.print() ; //調用print方法打印輸出
??????????????????????? s2 = Singleton.getInstance() ;//把類中的實例化對象傳遞給s2
??????????????????????? s2.print() ; //調用print方法打印輸出
???
??????????????????????? s2.setName("jack");
??????????????????????? s2.setAge(2);
???
??????????????????????? s1.print();
?????????????????????????}
????????????????}

????????????????class Singleton ?{//定義Singleton類

?????????????????//在類的內部用靜態實例化對象并私有化
?????????????????????private static Singleton instance = new Singleton() ;
?????????????????//用靜態方式定義getter方法取回instance對象
?????????????????????public static Singleton getInstance(){
??????????????????????????return instance ;
?????????????????????}
?????????????????????private String name ; //定義name屬性
?????????????????????private int age ;? //定義age屬性
?????????????????????private Singleton(){} //無參構造 并私有化
?????????????????????public void setName(String name){ //setter方法
??????????????????????????this.name = name ;
?????????????????????}????
?????????????????????public String getName(){ //getter方法
??????????????????????????return this.name ;
?????????????????????}
?????????????????????public void setAge(int age){//setter方法
??????????????????????????this.age = age ;
?????????????????????}
?????????????????????public int getAge(){ //getter方法
??????????????????????????return this.age ;
?????????????????????}
?????????????????????public void print(){ //定義一個打印輸出的方法
??????????????????????????System.out.println("姓名:" + getName() + "年齡:" + getAge()) ;
?????????????????????}
????????????????}

????????????運行結果:

????????????????????姓名:null年齡:0
????????????????????姓名:null年齡:0
????????????????????姓名:jack年齡:2

????????????總結:s1 與 s2 指向同一對象,當修改s2的值時,s1的值也會改變。

?

轉載于:https://blog.51cto.com/kingstar/1531703

總結

以上是生活随笔為你收集整理的笔记:Java中的单例设计模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。