1. 程式人生 > 其它 >空物件模式(Null Object Pattern)

空物件模式(Null Object Pattern)

定義

設計一個空物件取代NULL物件例項的檢查。NULL物件不是檢查控制,而是反映一個不做任何動作的關係。

這樣的NULL物件也可以在資料不可用的時候提供預設的行為,屬於行為型設計模式。

組成

  • 抽象物件(AbstractObject):定義所有子類公有的行為和屬性。
  • 真實物件(RealObject):繼承AbstractObject類,並實現所有行為。
  • 空物件(NullObject):繼承AbstractObject類,對父類方法和屬性不做實現和賦值。

目的

減少空檢查的程式碼,提高可讀性

優點

  • 它可以加強系統的穩固性,能有效地減少空指標報錯對整個系統的影響,使系統更加穩定。
  • 它能夠實現對空物件情況的定製化的控制,掌握處理空物件的主動權。
  • 它並不依靠Client來保證整個系統的穩定執行。
  • 它通過定義isNull()對使用條件語句==null的替換,顯得更加優雅,更加易懂。

缺點

  • 每一個要返回的真實的實體都要建立一個對應的空物件模型,會增加類的數量。
  • 模式使用時應謹慎,因為它可以使錯誤顯示為正常程式執行。