码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式_NullObject模式

时间:2015-03-12 06:19:04      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

使用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 }

 

设计模式_NullObject模式

标签:

原文地址:http://www.cnblogs.com/zhangshiwen/p/4331371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!