空對象模式 空對象模式是通過實現一個預設的無意義對象來避免null值出現, 簡單地說,就是為了避免在程式中出現null值判斷而誕生的一種常用設計方法. 舉個簡單的例子, 一個聽動物叫聲的模擬程式: 動物代碼: 聽叫聲的人: 現在我們想, 能不能把 animal 的空值判斷去掉呢?我們增加一個 Nul ...
空對象模式
空對象模式是通過實現一個預設的無意義對象來避免null值出現, 簡單地說,就是為了避免在程式中出現null值判斷而誕生的一種常用設計方法.
舉個簡單的例子, 一個聽動物叫聲的模擬程式:
動物代碼:
聽叫聲的人:
現在我們想, 能不能把 animal 的空值判斷去掉呢?我們增加一個 NullAnimal 類:
增加了NullAnimal類後, 在Person類中就不需要"animal != null"這句話了, 因為我們提供了一個實現介面的所有方法, 不會再產生null對象. 想象一個web項目中, animal對象可能由MVC框架映射產生, 我們只要定義一個預設的映射對象是NullAnimal, 就可以解決控制判斷的問題, 提升代碼的可讀性. 這就是空對象模式, 非常簡單, 但非常實用.
空對象模式是通過空代碼實現一個介面或抽象類的所有方法, 以滿足開發需求, 簡化程式.
它如此簡單, 以至於我們經常在代碼中看到或使用, 對它已經熟視無睹了, 而它無論是 事前規劃或事後重構, 都不會對我們的代碼產生太大的衝擊.