有時候我們的**中為避免 nullpointerexception 會出現很多的對null的判斷語句,而這些語句一旦多起來,我們的**就會變的慘不忍睹,因此我們引入了空物件模式(null object pattern)以此來使我們的**變的更優雅一點.
第一步:建立乙個抽象基類,**如下:
package com.test;
/*** 這是抽象基類
* @author 歐陽飄
*/public abstract class abstractcustomer
第二步:建立擴充套件上述類的具體類,其**如下:
package com.test;
/*** 真實存在的具體類
* @author 歐陽飄
*/public class realcustomer extends abstractcustomer
@override
public string getname()
//判斷是否是空物件
@override
public boolean isnil()
}/**
* 空物件的具體類
* @author administrator**/
public class nullcustomer extends abstractcustomer
//判斷是否是空物件
@override
public boolean isnil()
}第三步:建立乙個custome***ctory
類,其**如下:
/**
* * @author 歐陽飄
* 建立客戶的工廠類:如果客戶名稱可以查詢出來,那麼就返回真實的物件,如果不存在那麼就返回空客戶物件
*/public class custome***ctory ;
public static abstractcustomer getcustomer(string name)
}return new nullcustomer();
}}第四步:建立演示demo程式,執行結果如下圖所示
通過上述我們得出空物件設計模式類圖如下:
空物件設計模式的優點:
(1)它可以加強系統的穩固性,能有有效地防止空指標報錯對整個系統的影響,使系統更加穩定。
(2)它能夠實現對空物件情況的定製化的控制,能夠掌握處理空物件的主動權。
(3)它並不依靠client來保證整個系統的穩定執行。
(4)它通過isnull對==null的替換,顯得更加優雅,更加易懂。
設計模式 空物件模式
1.什麼是空物件模式 在空物件模式 null object pattern 中,乙個空物件取代 null 物件例項的檢查。null 物件不是檢查空值,而是反應乙個不做任何動作的關係。這樣的 null 物件也可以在資料不可用的時候提供預設的行為。在空物件模式中,我們建立乙個指定各種要執行的操作的抽象類...
c 返回空物件 設計模式之空物件設計模式
有時候我們的 中為避免 nullpointerexception 會出現很多的對null的判斷語句,而這些語句一旦多起來,我們的 就會變的慘不忍睹,因此我們引入了空物件模式 null object pattern 以此來使我們的 變的更優雅一點.第一步 建立乙個抽象基類,如下 第二部 建立擴充套件上...
設計模式(3) 工廠設計模式
1.概述 定義乙個用於建立物件的工廠介面,讓工廠子類決定將哪乙個產品類例項化。此模式讓乙個產品類的例項化延遲到工廠子類。2.實現 先定義乙個抽象產品類,包含產品類的公共 再定義乙個抽象工廠類,用乙個方法返回乙個具體的產品類 分別實現具體的產品類,和對應的具體工廠類 3.抽象產品類 internal ...