太多"图案后缀" - 设计气味?

fin*_*nnw 6 java design-patterns naming-conventions

我刚刚发现自己创建了一个名为"InstructionBuilderFactoryMapFactory"的类.这是一个类的4"模式后缀".它立刻让我想起了这个:

http://www.jroller.com/landers/entry/the_design_pattern_facade_pattern

这是一种设计气味吗?我应该对这个号码加以限制吗?

我知道一些程序员对其他事情有类似的规则(例如,在C中不超过N级指针间接)

所有课程对我来说都是必要的.我有一个从字符串到工厂的(固定)地图 - 这是我一直在做的事情.列表变得越来越长,我想将它移出使用构建器的类的构造函数(由从地图中获取的工厂创建的......)和往常一样,我正在避免使用单例.

Pab*_*dez 14

一个好的提示是:您的类公共API(包括它的名称)应该显示意图,而不是实现.我(作为客户端)不关心您是否实现了构建器模式或工厂模式.

不仅类名看起来很糟糕,它也没有说明它的作用.它的名称基于其实现和内部结构.

我很少在类中使用模式名称,但(有时)工厂除外.

编辑:

找到一篇关于Coding Horror命名的有趣文章,请查看!


jop*_*jop 4

我将其视为一种设计气味 - 它会让我思考所有这些抽象级别是否具有足够的影响力。

我不明白为什么你想将一个类命名为“InstructionBuilderFactoryMapFactory”?是否还有其他类型的工厂 - 不创建InstructionBuilderFactoryMap 的工厂?或者是否有任何其他类型的InstructionBuildersFactories需要映射?

当您开始创建此类类时,这些是您应该考虑的问题。可以将所有这些不同的工厂聚合为一个工厂,然后提供单独的方法来创建工厂。也可以将这些工厂-工厂放在不同的包中,并给它们一个更简洁的名称。考虑其他方法来做到这一点。