您的位置:首页 > 移动开发 > Objective-C

空对象模式(Null Object Pattern)

2016-06-15 23:20 483 查看
空对象模式:用一个空对象来取代null实例的检查,空对象实现一个不做任何动作的关系。(消除如if(Object == null) 这样的检查null实例代码)

例子:



public abstract class Duck {
public String name;
public abstract void getName();
}

public class ConcreteDuck extends Duck {
public ConcreteDuck(String name) {
this.name = name;
}
public void getName() {
System.out.println("ConcreteDuck");
}
}

public class NullDuck extends Duck {
public void getName() {
}
}

public class Client {
public static final String[] names = {"A","B","C"};
public static Duck getDuck(String name) {
for(int i = 0; i < names.length;i++) {
if(name[i].equalsIgnoreCase(name)) {
return new ConcreteDuck(name);
}
}
return new NullDuck();
}
public static void main(String[] args) {
Duck d1 = new Client.getDuck("A");
Duck d2 = new Client.getDuck("D");
System.out.println(d1.getName());
System.out.println(d2.getName());//没有name=D的Duck,空对象的getName方法不打印字符串
}
}


如果要求的对象不存在,不是返回null,而是返回空对象,这样代码会比使用条件判断更加"优雅"。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: