博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
空对象模式(Null Object Pattern)
阅读量:6086 次
发布时间:2019-06-20

本文共 1099 字,大约阅读时间需要 3 分钟。

空对象模式:用一个空对象来取代null实例的检查,空对象实现一个不做任何动作的关系。(消除如if(Object == null) 这样的检查null实例代码)

 

 

例子:

public abstract class Duck {    public String name;    public abstract void getName();}public class ConcreteDuck extends Duck {    public ConcreteDuck(String name) {        this.name = name;    }    public void getName() {        System.out.println("ConcreteDuck");    }}public class NullDuck extends Duck {    public void getName() {    }}public class Client {    public static final String[] names = {
"A","B","C"}; public static Duck getDuck(String name) { for(int i = 0; i < names.length;i++) { if(name[i].equalsIgnoreCase(name)) { return new ConcreteDuck(name); } } return new NullDuck(); } public static void main(String[] args) { Duck d1 = new Client.getDuck("A"); Duck d2 = new Client.getDuck("D"); System.out.println(d1.getName()); System.out.println(d2.getName());//没有name=D的Duck,空对象的getName方法不打印字符串 }}

 如果要求的对象不存在,不是返回null,而是返回空对象,这样代码会比使用条件判断更加"优雅"。

转载于:https://www.cnblogs.com/13jhzeng/p/5589401.html

你可能感兴趣的文章
Weex学习第三篇:模版,样式,脚本
查看>>
高层吊运机在吊运过程中的常见故障排除法
查看>>
oracle mysql5.7 Json函数
查看>>
ajax结合js实现服务器
查看>>
javascript 日期 获取周等
查看>>
c++连接数据库
查看>>
前端开发框架整理
查看>>
集群之MYsql主从服务之引伸出Mysql互为主从(环形结构)外加简单实现自己个人的负载均衡器(3)...
查看>>
Centos7重置Mysql 8.0.1 root 密码
查看>>
多线程测试工具(GroboUtils)的使用
查看>>
5分钟学会 Thymeleaf 的基本使用
查看>>
tensorflow初探-checkpoint转换成pb
查看>>
Xcode5的Retina屏幕
查看>>
求一个整形数组中一个index,index左边的和 等于index 右边的和
查看>>
买MyEclipse送书活动|《Effective Java中文版(第2版)》《Java编程思想(第
查看>>
微信浏览器取消缓存的方法
查看>>
JSP 结构
查看>>
由&引发的转义问题
查看>>
亲爱的项目经理,我恨你
查看>>
金笛邮件系统组织机构管理
查看>>