[英]interface is implemented by thousands of classes so if changes occurs in interface then how to reduce it
有一个场景我有接口X,它已经用我的数千个类实现。 现在我想在Interface X中添加新方法。那么如何以最小的方式进行更改以解决所有类中方法被覆盖的问题
如果方法实现对所有类都是通用的,那么abstract class
可能比它的interface
更好。
如果不是 - 那么无论如何你都会写这些方法。
(*)最初是评论,但我被要求作为答案。
除了其他建议(使其abstract
或extend
interface
),还有一个选择:
使接口的所有实现者扩展基类。 这样,当您向interface
添加方法时,您只需要将默认行为添加到基类和特定于类的行为(希望)只是一些实现者。
如果你不介意在你的所有类中都没有这个方法的实现,并且可以控制所有的实现类,那么这是一个非常hacky的方法,可以通过3个步骤使用IntelliJ来完成,而无需访问每个类:
选择一个方法并调用Refactor-> Push Down ... - 您的方法声明将出现在实现此接口的所有类中,但至少在我的IntelliJ IDEA(11.0.2)版本中,它们将没有实现,例如void doSomething();
,因此选择此定义并执行完整项目查找和替换以将此字符串替换为您的默认实现,例如,
@Override void doSomething(){}
再次将您的方法添加到界面。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.