在空物件模式(null object pattern)中,乙個空物件取代 null 物件例項的檢查。null 物件不是檢查空值,而是反應乙個不做任何動作的關係。這樣的 null 物件也可以在資料不可用的時候提供預設的行為。
在空物件模式中,我們建立乙個指定各種要執行的操作的抽象類和擴充套件該類的實體類,還建立乙個未對該類做任何實現的空物件類,該空物件類將無縫地使用在需要檢查空值的地方。
意圖通過對缺失物件的封裝,以提供預設無任何行為的物件替代品
適用場景
滿足下列條件時可以使用空物件模式 優點
1.對於物件互動更加統一
2.解決部分語言不支援返回nil的問題
缺點會增加空物件的開發量
示例
#include
"stdafx.h"
#include
#include
class
icustomer
;class
realcustomer
:public icustomer
virtual std::string getname()
virtual
bool
isnil()
};class
nullcustomer
:public icustomer
virtual
bool
isnil()
};class
custome***ctory
}return
newnullcustomer()
;}};
std::vector<:string> custome***ctory::names =
;int
main()
customers:
robbob
invalid customer
laura
空物件模式
在空物件模式 null object pattern 中,乙個空物件取代null物件例項的檢查。null物件不是檢查空值,而是反應乙個不做任何動作的關係。這樣的null物件也可以在資料不可用的時候提供預設的行為。在空物件模式中,我們建立乙個指定各種要執行的操作的抽象類和擴充套件該類的實體類,還建立乙...
設計模式 空物件模式
1.什麼是空物件模式 在空物件模式 null object pattern 中,乙個空物件取代 null 物件例項的檢查。null 物件不是檢查空值,而是反應乙個不做任何動作的關係。這樣的 null 物件也可以在資料不可用的時候提供預設的行為。在空物件模式中,我們建立乙個指定各種要執行的操作的抽象類...
NULL Object空物件模式
null object空物件模式 當你在處理可能會出現null的物件時,可能要產生相對乏味的 來做相應的處理,使用空物件模式可以接受null,並返回相應的資訊。空物件模式通常會作為乙個單獨的空物件類,封裝乙個預設的行為。inte ce log class filelog extends log cl...