安卓中的兩種設計模式 單例模式,觀察者模式

2021-07-31 05:31:40 字數 1192 閱讀 5856

通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。顯然單例模式的要點有三個:一是某個類只能有乙個例項;二是它必須自行建立這個例項;三是它必須自行向整個系統提供這個例項。

單例模式

執行緒不安全的寫法:兩者的初始化時間不一樣;在多執行緒中使用可能出現併發問題,

package lanxin.lanxin.bean;

/** * created by crs on 2017/4/26.

*/public class student

//對外提供公開方法

public static student getinstance()

return mstudent;

}}

package lanxin.lanxin.bean;

/** * created by crs on 2017/4/26.

*/public class student

//對外提供公開方法

public static student getinstance()

}

執行緒安全的寫法:對方法進行加鎖,避免多次初始化的問題

package lanxin.lanxin.bean;

/** * created by crs on 2017/4/26.

*/public class student

//定義乙個student型別的變數(不初始化,注意這裡沒有使用final關鍵字)

private static student mstudent;

//定義乙個靜態的方法(呼叫時再初始化student,使用synchronized 避免多執行緒訪問時,可能造成重的復初始化問題)

public static synchronized student getinstance()

}

觀察者模式:

觀察者,被觀察者,事件源

觀察者模式定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個物件。這個物件在狀態發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己。

eventbus,響應式程式設計都使用了觀察者模式。

兩種單例設計模式

設計模式是在大量的實踐中總結和理論化之後優選的 結構 程式設計風格 以及解決問題的思考方式。設計模式就像是經典的棋譜,不同的棋局,我們用不同的棋譜,免去我們自己再思考和摸索。所謂類的單例設計模式,就是採取一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項...

兩種單例模式

一。單例模式 有以下的特點 eg。每台計算機可以有若干通訊埠,系統應當集中管理這些通訊埠,以避免乙個通訊埠同時被兩個請求同時呼叫。為了避免不一致狀態 1 單例類只能有乙個例項。2 單例類必須自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。1 懶漢式單例 singleton通過將構造...

單例設計模式的兩種情況

單例設計模式。餓漢式。class singledemo public static singledemo getsingledemoinstance 延遲載入的單例設計模式例項 懶漢式 特點 用於例項的延遲載入 缺點 多執行緒訪問時,會出現安全問題.解決方式 用同步 塊或同步方法,不過效率低.用雙重...