design-patterns - 为空对象或缺失对象选择名称

标签 design-patterns

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

7年前关闭。




Improve this question




空对象模式是测试驱动开发的绝佳工具。如果我需要使系统的行为更复杂,我会引入一个空对象,以便我快速恢复绿色。此外,通常 null 对象对于保留旧的单元测试很有用。空对象模式的更多信息和其他用途在这里:

http://en.wikipedia.org/wiki/Null_Object_pattern

现在我在系统中有一些这样的东西,我开始想知道给它们命名的最佳方式。您通常只是将 Null 作为名称中的第一个单词,还是为每个 null 对象指定自己的名称?

为了讨论的目的,让我设置一个例子。假设我以前只穿黑色高领毛衣,但现在我想稍微改变一下我的衣橱。我会称我的新类型为 WardrobeChooser。为了封装旧的行为,我可以调用我的旧对象 NullWardrobeChooser 或 BlackTurtleneckWardrobeChooser 甚至 MissingWardrobeChooser(哎呀!那个可能很糟糕)。你会推荐什么名字?

我在网上查看,但我似乎找不到任何关于此的引用。

最佳答案

我个人不喜欢对空对象使用命名策略,而是根据它们公开的行为来命名它们。

如果想出方便的命名需要时间,我认为像 Empty 这样的前缀或 Default优于Null因为它只是告诉使用空对象模式,没有别的。

空对象名称的一些示例是: NoDiscount , EmptyIterator , DefaultPaymentStrategy , 等等。

关于design-patterns - 为空对象或缺失对象选择名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8545994/

相关文章:

java - 如何摆脱继承?

design-patterns - JSF MVC 设计问题

design-patterns - 如何设计游戏服务器的通信 channel

Java 枚举强制字段的唯一性

c++ - 与 get_instance() 分离的单例构造函数

java - 我应该传递一个单例作为函数参数吗

C# GOF 模式示例

java - 对接口(interface)而不是实现进行编程 : Why is assigning the concrete implementation of an object at runtime even better?

javascript - Pro Javascript 设计模式勘误表?

android - 我想使用 MVP 设计模式为 android 构建手动 camera2 应用程序。如何?