Han*_*etz 5 language-agnostic oop coding-style
我有时最终得到一个类层次结构,其中我有一个具有一些常见功能的抽象基类,以及一些属于两个(很少更多)组的实现类,在某些情况下我想要区别对待.一个例子是抽象树节点类和不同的分支和叶实现,我想在某些点区分分支和叶子.
然后,这些中间类仅用于流控制中的"is-a"语句,并且它们不包含任何代码,尽管我有过这样的情况,他们稍后会"增长"某些代码.
这对你来说有点难闻吗?在我的树示例中,一种替代方法是向基类添加isLeaf()/ isBranch()抽象方法并在中间类上实现这些方法,但这对我来说似乎没有任何好处,实际上,除非我的意思是要有类可能会同时出现多种情况.
一般来说,空类是一种代码味道。
我同意你的isLeaf或isBranch方法是正确的选择。他们添加有关对象的信息,这很有帮助。(这是因为,在超类上,您无法表达子类是“叶子或分支”)。
结果相反的两种方法也可能被认为是代码重复。
您只能使用一个...但我建议返回一个枚举值 LEAF 或 BRANCH。
| 归档时间: |
|
| 查看次数: |
227 次 |
| 最近记录: |