我刚刚在这里阅读了这篇文章:http: //hamletdarcy.blogspot.com/2008/04/10-best-idea-inspections-youre-not.html,最后一点特别让我想到了我的代码,具体建议:
世界上的公共方法在您的对象上做什么,它不依赖于对象内的任何字段?这当然是一种代码味道。问题是检查的“自动修复”是应用静态关键字。不。那不是你想做的。不依赖于对象状态的公共方法不可能成为具有明确规定的章程的对象的一部分。它只是没有凝聚力,应该放在其他地方。所以:如果方法是私有的,接受自动修复,但如果方法是公共的,那么不要。
有问题的代码本质上是一个对象转换器。它接受类型 A 的对象并将其转换为不同的类型。
我的层次结构是这样的:
接口 ObjectTransformer -> GenericObjectTransformer
然后在此之下,GenericObjectTransformer 由 ObjectTransformerA 和 ObjectTransformerB 扩展
现在,ObjectTransformerA 和 ObjectTransformerB 都需要一些功能,但实际上并不依赖于 GenericObjectTransformer 的任何实例变量,因此它是 GenericObjectTransformer 中受保护的静态方法。
这是否违反了上述规则?显然这是受保护的而不是公共的,但它仍然是一个可以从类外部访问的方法,与类本身无关?
有什么想法吗?