02.设计模式_NullObject模式
2024-08-31 03:47:45
使用NULL OBJECT模式,我们可以确保返回的总是有效的对象,即使失败时也代表对象什么也不做。
下面以一个数据库查询的示例来演示空对象模式。
1.Employe实体对象空对象的接口
Employe.java
package com.design.patterns01.nullobject; public interface Employee {
public void pay();
/**
*使用匿名内部类是一种确保该类只有一个唯一的(NULL)实例。实际上不存在NullEmployee类本身
*/
public static final Employee NULL = new Employee(){
@Override
public void pay() {}
}; }
2.数据库查询
DB.java
package com.design.patterns01.nullobject; public class DB {
public static Employee getEmployee(String name){
//这里为了测试只返回了Employee.NULL
return Employee.NULL;
} }
3.测试空对象
TestEmployee
package com.design.patterns01.nullobject; import static org.junit.Assert.assertEquals; import org.junit.Test; public class TestEmployee {
@Test
public void testNull(){
String name = "zhangsan";
Employee e = DB.getEmployee(name);
e.pay();
if(Employee.NULL == e) System.out.println("该对象是空对象!");
assertEquals(Employee.NULL, e);
} }
最新文章
- css3实现的动画效果
- Syntax highlighting in fenced code blocks
- entlib验证组件
- DP:Miking Time(POJ 3616)
- liux下ftp链接服务器的常用命令
- Netty4.0学习笔记系列之一:Server与Client的通讯
- CSS中的高度
- 集成容联:Warning! ivar size mismatch in PSUICollectionView_ - can't change the superclass.解决办法
- 将EXCEL中的列拼接成SQL insert插入语句
- Xcode好用的插件(随时更新)
- Linux之文件备份与恢复
- MSICE界面和功能分析
- Mac上配置maven+eclipse+spark开发环境
- Docker命令分类及使用场景分布(脑图)
- etcd 分布式数据库概念初探
- Scrum Meeting 10.23
- WebGL学习笔记二
- linux内核分析第八周-理解进程调度时机跟踪分析进程调度与进程切换的过程
- Python 执行命令行操作。
- 进程一些命令pstree,ps,pstack,top