language-agnostic - 在类层次结构的中间有空类是否有代码味?

标签 language-agnostic oop coding-style

有时我最终会得到一个类层次结构,其中我有一个具有一些通用功能的抽象基类和几个属于两个(很少更多)组的实现类,我想在某些情况下对它们进行不同的处理。一个例子是抽象树节点类和不同的分支和叶子实现,我想在某个时候区分分支和叶子。

这些中间类然后只用于流控制中的“is-a”语句,它们不包含任何代码,尽管我有过它们后来“增长”一些代码的情况。

你觉得这很臭吗?在我的树示例中,一种替代方法是添加 isLeaf()/isBranch()抽象方法到基类并在中间类上实现这些方法,但这对我来说似乎并没有更好,真的,除非我打算拥有可以同时包含多个事物的类。

最佳答案

对我来说,在流量控制中使用“is-a”测试和使用 switch/case 一样难闻。在一个好的 OO 设计中,两者都不需要。

关于language-agnostic - 在类层次结构的中间有空类是否有代码味?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1486153/

相关文章:

coding-style - 什么时候违反单一职责原则是合理的?

data-structures - 时间序列数据的最佳数据结构

language-agnostic - 空指针与悬空指针

javascript - 如何在一个页面上创建多个独立运行的计时器——javascript?

c - 在不同的头文件中定义 ARGS 有什么用?

javascript - 属性名称与非匿名函数相同

python - 如何高效地查找文档中的短语

python - 为什么我得到这个 [1, 2, 4, 8, 16, 1, 16, 8, 4, 2, 1]?

oop - Scala mixin 真的比多重 C++ 继承更好吗?

python - 如何从字符串变量中定位类的特定实例