物件導向 單例設計模式

2021-08-16 09:23:39 字數 1043 閱讀 5154

單例設計模式 就是保證該類在程式中只能存在乙個物件,所以不能讓別人例項化該類,所以要私有化(private)該類的建構函式,但是你要為別人提供乙個該類的唯一物件,所以你要在該類中定義乙個靜態的方法返回本類物件。

設計模式:解決某一問題最行之有效的方法

單例設計模式:解決乙個類在記憶體只存在乙個物件

想要保證物件唯一:

1、為了避免其他程式過多建立該類物件,先禁止其他程式建立該類物件

2、還為了讓其他程式可以訪問到該類物件,只好在本類中,自定義乙個物件

3、為了方便其他程式對自定義物件的訪問,可以對外提供一些訪問方式

面試:1、懶漢式和餓漢式有什麼不同?

懶漢式的特點是例項的延遲載入

2、延遲載入有沒有問題?

如果多執行緒訪問時,會出現安全問題,使用同步解決(同步**塊或者同步函式都可以,但是都比較低效)

用雙重判斷的形式,可以解決低效的問題。

3、同步的時候,使用的鎖是哪乙個?

該類對應的位元組碼檔案物件。

**:

class student

public static student getstudent()

public void setage(int age)

public int getage()

}class code

}

單例模式的兩種方式:

//先初始化物件,稱為:餓漢式

class student

public static student getstudent()

}//物件是方法被呼叫時,才初始化,也叫做物件的延時載入,稱為:懶漢式

//student1類進記憶體,物件還沒有存在,只有呼叫了getstudent方法時,才建立物件

class student1

public static student1 getstudent()

return s;

}}//原則:定義單例,建議使用餓漢式

class code

}

物件導向 單例設計模式

單例設計模式 就是保證該類在程式中只能存在乙個物件,所以不能讓別人例項化該類,所以要私有化 private 該類的建構函式,但是你要為別人提供乙個該類的唯一物件,所以你要在該類中定義乙個靜態的方法返回本類物件。設計模式 解決某一問題最行之有效的方法 單例設計模式 解決乙個類在記憶體只存在乙個物件 想...

物件導向之單例設計模式

設計模式 解決某一種問題的思想。是一種行之有效的解決方式。23種模式。單例設計模式。思想!思想!思想!解決問題 能夠保證乙個類的物件在記憶體中的唯一性。應用場景 多個成序都在操作同乙個配置檔案時,程式b需要知道程式a的結果並基於此結果進行後續操作 前提是,資料都儲存在配置檔案的物件中,要求程式a和程...

Java物件導向 單例設計模式

需求 定義乙個陣列的工具類arrayutil,使用單例模式解決。目的 保證在整個應用中某乙個類有且只有乙個例項 乙個類在堆記憶體只存在乙個物件 即所有指向該型別的例項的引用都指向同一塊記憶體空間。寫單例模式的步驟 1 必須在該類中,自己建立乙個物件 2 私有化自身的構造器,防止外界通過構造器建立新的...