空对象模式
空对象模式(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();
}
}
空对象模式是通过空代码实现一个接口或抽象类的所有方法,以满足开发需求,简化程序。