zoukankan      html  css  js  c++  java
  • 02.设计模式_NullObject模式

    使用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 }
  • 相关阅读:
    数制
    转移指令检测题9
    转移指令笔记(1)
    汇编笔记
    汇编语言学习笔记
    C++中的虚函数
    windows程序设计(四)
    windows程序设计(三)
    windows程序设计(二)
    通过Url网络编程实现下载
  • 原文地址:https://www.cnblogs.com/zhangshiwen/p/4331371.html
Copyright © 2011-2022 走看看