空對象模式
空對象模式(Null Object Pattern):通過實現一個默認的無意義對象來避免null值出現。簡單地說,就是爲了避免在程序中出現null值判斷而誕生的一種常用設計方法。
這裏我們通過一個簡單的例子進行介紹:
(1)我們首先定義一個動物接口,然後定義一隻狗,實現狗叫的方法。
//定義動物接口
public interface Animal {
public void makeSound();
}
//定義狗
class Dog implements Animal{
public void makeSound(){
System.out.println(“Wang Wang Wang!”);
}
}
(2)定義一個人來聽狗叫
public class Person {
//聽狗叫
public void hear(Animal animal){
if(animal != null){
animal.makeSound();
}
}
}
這個類裏存在一個null的判斷,我們想去掉null值的判斷怎麼辦呢?只需要再增加一個NullAnimal類即可,這樣就不會存在接收動物爲空的情況了。
class NullAnimal implements Animal{
public void makeSound(){
}
}
增加該類後,我們的Person類可以修改爲:
public class Person {
//聽狗叫
public void hear(Animal animal){
animal.makeSound();
}
}
空對象模式是通過空代碼實現一個接口或抽象類的所有方法,以滿足開發需求,簡化程序。