有一个名为 AbstractAgent
的抽象类,目前有 27 个类正在扩展该类。
我已经开始开发一些代理,我的所有 5 个代理都在扩展 AbstractAgent
类。
现在我发现有一个 getFilePath()
,我正在将其复制粘贴到我的所有 5 个代理中。后来我发现现有的27个类(class)中也有很多类(class)有这个方法。我认为将此方法放在基类 AbstractAgent
中并让每个人都使用该方法是一个好主意。但我不希望所有现有的类更改其代码,我更改了方法名称,以便以后任何人都可以使用它。
对我进行代码审查的人建议我不要碰 AbstractAgent
类,因为它已经被现有客户端使用,并且将此方法放在某个实用程序类中。
我不相信他的论点。任何人都想表达自己的想法。
最佳答案
在这种情况下,因为 AbstractAgent
类已被其他类使用,并且正如您自己提到的,并非所有类都实现了此方法,那么您确实不应该更改AbstractAgent
。但是,您可以在另一个名为 AbstractAgentWithFilePath
的抽象子类中扩展 AbstractAgent
,该子类声明您想要的附加方法,然后让这些类扩展 AbstractAgentWithFilePath
类代替。
关于Java 继承或静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9607125/