`
tiantian911
  • 浏览: 217938 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Null Object模式

 
阅读更多
在程序中经常要使用==null来判定对象是否初始化,可以采用null object模式来简化这样的代码,从而提高健壮性。
/**
 * 
 */

/**
 * @author lucy
 * 
 */
public abstract class AbstractProduct {
	public String name;
	public Integer price;
	private static AbstractProduct nullProduct = null;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getPrice() {
		return price;
	}

	public void setPrice(Integer price) {
		this.price = price;
	}

	public static AbstractProduct getNullProduct() {
		if (AbstractProduct.nullProduct == null) {
			return new NullProduct();
		}
		return nullProduct;
	}

}



public class NullProduct extends AbstractProduct {
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getPrice() {
		return price;
	}

	public void setPrice(Integer price) {
		this.price = price;
	}

	public boolean isNull() {
		return true;
	}

}


public class Product extends AbstractProduct {
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getPrice() {
		return price;
	}

	public void setPrice(Integer price) {
		this.price = price;
	}

	public boolean isNull() {
		return false;
	}
}

2
1
分享到:
评论

相关推荐

    NullObject模式研究 (2013年)

    在许多面向对象的程序设计...NullObject模式能够用来解决这一问题。本文阐述了NullObject模式及其实现方式,针对空目标的单一实例化策略,给出了改进措施。NullObject模式对去除重复检测和减少空引用异常有较明显的效果。

    敏捷软件开发:原则、模式与实践

    第17章 NULL OBJECT模式 第18章 薪水支付案例研究:第一次迭代开始 第19章 薪水支付案例研究:实现 第四部分 打包薪水支付系统 第20章 包的设计原则 第21章 FACTORY模式 第22章 薪水支付案例研究(第2部分) 第五...

    敏捷软件开发原则、模式与实践 C#版

    第21章 COMMAND模式和ACTIVE OBJECT模式:多功能与多任务 第22章 TEMPLATE METHOD模式和STRATEGY模式:继承和委托 第23章 FACADE模式和MEDIATOR模式 第24章 SINGLETON模式和MONOSTATE模式 第25章 NULL OBJECT模式 ...

    C#对象为Null模式(Null Object Pattern)实例教程

    主要介绍了C#对象为Null模式(Null Object Pattern),以一个简单实例深入分析了C#为Null情况下的处理方法,需要的朋友可以参考下

    敏捷软件开发:原则、模式与实践.pdf

    第十七章 NULL OBJECT模式 第十八章 薪水支付案例研究:第一次迭代开始 第十九章 薪水支付案例研究:实现 第Ⅳ部分 打包薪水支付系统 第二十章 包的设计原则 第二十一章 FACTORY模式 第二十二章 薪水支付案例研究...

    敏捷软件开发:原则、模式与实践.pdf 高清

    第十七章 NULL OBJECT模式 第十八章 薪水支付案例研究:第一次迭代开始 第十九章 薪水支付案例研究:实现 第Ⅳ部分 打包薪水支付系统 第二十章 包的设计原则 第二十一章 FACTORY模式 第二十二章 薪水支付案例研究...

    敏捷软件开发:原则、模式与实践.pdf

    第17章 NULL OBJECT模式 第18章 薪水支付案例研究:第一次迭代开始 第19章 薪水支付案例研究:实现 第四部分 打包薪水支付系统 第20章 包的设计原则 第21章 FACTORY模式 第22章 薪水支付案例研究(第2部分) 第五...

    敏捷软件开发.pdf

    第17章 NULL OBJECT模式 17.1 结论 参考文献 第18章 薪水支付案例研究:第一次迭代开始 18.1 介绍 18.2 基于用例分析 18.3 反思:我们学到了什么 18.4 找出潜在的抽象 18.5 结论 参考文献 第19章 薪水...

    用Java实现23种设计模式

    空对象模式(Null Object Pattern) 策略模式(Strategy Pattern) 模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4. J2EE 模式 MVC 模式(MVC Pattern) 业务代表模式(Business Delegate ...

    23种java版设计模式源码案例.zip

    23种java版设计模式源码案例.zip 0.目录 创建型模式(creational) 简单工厂(simplefactory) 动态工厂(dynamic) ...空对象模式(null object) 策略模式(strategy) 模板模式(template) 访问者模式(visitor)

    33种JAVA设计模式DEMO

    空对象模式(Null Object Pattern) 策略模式(Strategy Pattern) 模板模式(Template Pattern) 访问者模式(Visitor Pattern) 4 J2EE 模式 这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。 ...

    java常用设计模式-空对象模式

    空对象模式(Null Object Pattern)是一种行为设计模式,它允许我们在不返回 null 的情况下提供默认行为。这种模式通常用于需要处理 null 对象的情况下,以避免NullPointerException 异常。 在软件设计中,我们经常...

    举例讲解Python中的Null模式与桥接模式编程

    Null模式 我想每个人都有一种经历,为了获取某属性,但是有时候属性是None,那么需要你做异常处理, 而假如你想节省这样的条件过滤的代码,可以使用Null模式以减少对象是否为None的判断 python的例子 我举个不是很...

    空对象模式

    在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式...

    使用并行扩展附加功能中的管道

    Pipeline和NullObject模式的组合使用大大简化了数据处理

    python学习小技巧:举例讲解Python中的Null模式与桥接模式编程

    这篇文章主要介绍了Python中的Null模式与桥接模式编程,Null模式与桥接模式都属于Python的设计模式编程,需要的朋友可以参考下 Null模式 我想每个人都有一种经历,为了获取某属性,但是有时候属性是None,那么需要你做...

Global site tag (gtag.js) - Google Analytics