标签:
使用NULL OBJECT模式,我们可以确保返回的总是有效的对象,即使失败时也代表对象什么也不做。
下面以一个数据库查询的示例来演示空对象模式。
1.Employe实体对象空对象的接口
Employe.java
1 package com.design.patterns01.nullobject; 2 3 public interface Employee { 4 public void pay(); 5 /** 6 *使用匿名内部类是一种确保该类只有一个唯一的(NULL)实例。实际上不存在NullEmployee类本身 7 */ 8 public static final Employee NULL = new Employee(){ 9 @Override 10 public void pay() {} 11 }; 12 13 }
2.数据库查询
DB.java
1 package com.design.patterns01.nullobject; 2 3 public class DB { 4 public static Employee getEmployee(String name){ 5 //这里为了测试只返回了Employee.NULL 6 return Employee.NULL; 7 } 8 9 }
3.测试空对象
TestEmployee
1 package com.design.patterns01.nullobject; 2 3 import static org.junit.Assert.assertEquals; 4 5 import org.junit.Test; 6 7 public class TestEmployee { 8 @Test 9 public void testNull(){ 10 String name = "zhangsan"; 11 Employee e = DB.getEmployee(name); 12 e.pay(); 13 if(Employee.NULL == e) System.out.println("该对象是空对象!"); 14 assertEquals(Employee.NULL, e); 15 } 16 17 }
标签:
原文地址:http://www.cnblogs.com/zhangshiwen/p/4331371.html