設計模式3-9:空對象模式

What

在空對象模式(Null Object Pattern)中,一個空對象取代 NULL 對象實例的檢查。Null 對象不是檢查空值,而是反應一個不做任何動作的關係。這樣的 Null 對象也可以在數據不可用的時候提供默認的行爲。

在空對象模式中,我們創建一個指定各種要執行的操作的抽象類和擴展該類的實體類,還創建一個未對該類做任何實現的空對象類,該空對象類將無縫地使用在需要檢查空值的地方。

Why

有時候我們的代碼中爲避免 NullPointerException 會出現很多的對Null的判斷語句,而這些語句一旦多起來,我們的代碼就會變的慘不忍睹,因此我們引入了空對象模式(null object pattern)以此來使我們的代碼變的更優雅一點。

對於有服務-客戶端的系統,爲了避免null的錯誤,需要在客戶端中做檢查。而把null的處理交給客戶端,是不太好的。畢竟永遠不要太相信客戶端。

How

創建一個定義操作(在這裏,是客戶的名稱)的 AbstractCustomer 抽象類,和擴展了 AbstractCustomer 類的實體類。工廠類 CustomerFactory 基於客戶傳遞的名字來返回 RealCustomer 或 NullCustomer 對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章