java – 将默认实现添加到代表监听器的接口的方法可以吗?
我的项目中使用了一个库.这个库有一个接口,有大约15种方法.
该接口的目的是使得可以订阅在库中生成的一些事件.应用程序中的监听器类可以实现此接口,并将其自身注册为库中的监听器以接收事件. 该界面中的所有方法实际上都是事件.可以有听众只需要在接口中从许多事件中只接收一个或两个事件.即使一个监听器只对少数事件感兴趣,监听器必须在扩展接口时实现所有的方法. 所以我问这个库的开发人员向接口的方法添加空的默认实现. 但是库开发人员拒绝添加默认实现,指出它将违反java最佳实践,并在接口方法中使用默认的实现来达到接口的目的. 但是,正如我可以理解的,这个接口中的一个方法没有指定这个接口的实现者应该能够执行的一些操作.这个接口中的一个方法是定义一个实现者可能感兴趣的事件,所以我看不到没有添加默认实现的明确原因. 那么,在这个接口中添加默认的实现,打破java的最佳实践? 解决方法
此参数在引入默认界面方法之前是有效的. 您只需通过从库接口导出自己的接口并为所有继承的方法提供默认的空实现来避免讨论. public interface MyInterface extends LibraryInterface { @Override default public void event1() { } ... } 或者你们都可以查看以下设计,这对我来说似乎是可疑的,导致您在界面中讨论默认方法:
解决方案可能是简单地拆分许多较小的界面. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |