NULL Object空对象模式:当你在处理可能会出现null的对象时,可能要产生相对乏味的代码来做相应的处理,使用空对象模式可以接受null,并返回相应的信息。
空对象模式通常会作为一个单独的空对象类,封装一个默认的行为。
Interface Log{public void log();}
class FileLog extends Log{public void log(){}}
class ConsoleLog extends Log{public void log(){}}
class NullObjectLog extends Log{public void log(){}}
public class Test{
static Log fun(String str){
Log log = new NullObjectLog();
if("file".equals(str)) log = new FileLog();
if("console".equals(str)) log = new ConsoleLog();
return log;
}
public static void main(String []args){
Log log = fun();
log.log("message");
}
}