空对象模式是一种行为型设计模式,它通过提供一个空对象来替代null值,从而避免了对null的检查。空对象模式使得系统更加健壮,并且简化了代码。
// 抽象对象
public abstract class AbstractObject {
protected String name;
public abstract boolean isNull();
public abstract String getName();
}
// 真实对象
public class RealObject extends AbstractObject {
public RealObject(String name) {
this.name = name;
}
@Override
public boolean isNull() {
return false;
}
@Override
public String getName() {
return name;
}
}
// 空对象
public class NullObject extends AbstractObject {
@Override
public boolean isNull() {
return true;
}
@Override
public String getName() {
return "Not Available";
}
}
// 对象工厂
public class ObjectFactory {
public static final String[] names = {"Object1", "Object2", "Object3"};
public static AbstractObject getObject(String name) {
for (String n : names) {
if (n.equalsIgnoreCase(name)) {
return new RealObject(n);
}
}
return new NullObject();
}
}