抽象类中的空方法

Lio*_*orH 8 language-agnostic design-patterns static-analysis

我刚刚安装了PMD来分析我的Java项目.非常好的工具,强烈推荐.无论如何,我有一些错误说:

"抽象类中的空方法应该是抽象的"

我检查了PMD文档,解释说:

因为开发人员可能依赖于这个空实现而不是编写适当的实现

所以我想我理解这个代码样式错误背后的原因,但请考虑以下场景:我有一个名为Entity的抽象类.该类具有默认实现的布尔方法.(控制是否在删除时删除其相关实体).只有少数派生类将此默认行为覆盖为true.

我应该删除默认实现并强制所有派生类声明其行为吗?你真的认为这种模式是一种不好的做法吗?

澄清: PMD将单个return语句的方法视为空.

Meh*_*ari 10

我认为这只是一个指导方针.它告诉你,你可能想重新考虑你的设计,但如果你的设计已经完全正确,那么没有理由服从软件而不是你的大脑.