設計模式(3)空物件設計模式

2021-08-10 16:23:41 字數 2136 閱讀 1361

有時候我們的**中為避免 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 ...