【问题标题】:Dummy implementation design pattern name虚拟实现设计模式名称
【发布时间】:2010-07-21 22:31:40
【问题描述】:

为了避免 NullPointerExceptions,我发现与接口一起提供接口的不可变虚拟实现很有用。像这样:

public interface Action {

  void perform();

  public static final Action dummy = new Action() {
    public void perform() { 
      /*nothing*/ 
    }
  };

}

Action.dummy 然后可以用来代替邪恶的null

这个设计模式有名字吗?

【问题讨论】:

  • 程序不起作用,我不知道为什么会出现这种情况。

标签: java design-patterns naming


【解决方案1】:

Null Object pattern(如果我没记错的话,由 M. Fowler 提供)。

这是 Fowler 重构书中的一章 Introduce Null Object

【讨论】:

  • 是的,Fowler 在各种出版物中推广了这个,尽管他称它为 PoEAA 中的 SpecialCase,我更喜欢它。通常,如果您也寻找它,业务应用程序会发现实际上存在与希望为空的对象相关的有用行为。
  • 我觉得“SpecialCase”毫无意义。一个特殊的情况可能是一切都没有,而“Null Object”更有意义。
猜你喜欢
  • 2015-12-21
  • 2015-03-04
  • 1970-01-01
  • 1970-01-01
  • 2015-07-26
  • 2011-01-13
  • 2011-09-22
  • 2016-12-12
  • 1970-01-01
相关资源
最近更新 更多