例如:Manager 原因:由于几乎所有类都会“管理”某些东西,而“Manager”的含义非常广泛,人们可以将许多职责放到“Manager”类中,同时仍然能够声称该类只做“一件事”。 因此,使用“Manager”作为类名并不能说明该类实际上在做什么。早期提到的文章“不使用'Manager'命名Java类”就指出了这一点:
另一个例子:Helper 原因:像“ThreadHelper”这样的类名会让人们想知道为什么需要它,以及为什么它不能成为“Thread”类的一部分。 它实际上是一个适配器或装饰器吗? 如果是这样,请用相应的名称命名。 “Thread”类是否已经承担了太多的责任? 如果是这样,请重构并为新类命名。 “Helper”无法说明它正在做什么或如何提供帮助。例如,考虑一个名为“UrlManager”的类-您无法判断它是否汇集URL、操作URL或审计其使用情况。 该名称只告诉您这不是URL,但它确实与URL一起工作。 另一方面,“UrlBuilder”的名称更清楚地说明了该类所做的事情。
还有哪些单词在类名中会提示需要重构或重新设计,并且应该避免使用? 为什么?
编辑:我认为这些单词经常被使用,因为
- 它们通常具有广泛的含义
- 它们可以适用于几乎所有情境
- 它们会阻碍设计师思考更好的设计或名称
- 人们认为使用它们没有问题
书籍《代码整洁之道》列举了更多类似的命名规则,但没有给出原因:
在类的名称中避免使用像Manager、Processor、Data或Info这样的词语。
如果有人能够提供可能的原因那就太好了。
相关问题: