空物件模式(Null Object Pattern)
阿新 • • 發佈:2022-04-18
定義
設計一個空物件取代NULL物件例項的檢查。NULL物件不是檢查控制,而是反映一個不做任何動作的關係。
這樣的NULL物件也可以在資料不可用的時候提供預設的行為,屬於行為型設計模式。
組成
- 抽象物件(AbstractObject):定義所有子類公有的行為和屬性。
- 真實物件(RealObject):繼承AbstractObject類,並實現所有行為。
- 空物件(NullObject):繼承AbstractObject類,對父類方法和屬性不做實現和賦值。
目的
減少空檢查的程式碼,提高可讀性
優點
- 它可以加強系統的穩固性,能有效地減少空指標報錯對整個系統的影響,使系統更加穩定。
- 它能夠實現對空物件情況的定製化的控制,掌握處理空物件的主動權。
- 它並不依靠Client來保證整個系統的穩定執行。
- 它通過定義isNull()對使用條件語句==null的替換,顯得更加優雅,更加易懂。
缺點
- 每一個要返回的真實的實體都要建立一個對應的空物件模型,會增加類的數量。
- 模式使用時應謹慎,因為它可以使錯誤顯示為正常程式執行。