java / kotlin 如何实现多重继承

本意是对外提供一个接口,但是功能太多,还是希望分组实现。
接口部分那就分成多个接口,然后用一个接口全部实现。
但是实现类呢?功能分散在多个小的实现类中,最终还要在一个大子类中全部代理一遍?太累了。安顺序继承一大串?太乱了。
有没有什么好的实现方案。kotlin 下有好的写法么? 怎么能够 by 多个?

阅读 8.9k
4 个回答

没有办法。java不支持多继承,你只能用组合模式来写。。

scala的trait倒是支持,kotlin有类似的特性?

看到一个kotlin的blog: 使用接口委托可以部分解决问题:
这是别人的blog

https://www.cnblogs.com/figozhg/p/6979138.html

OOA和OOP中的一个设计原则就是接口分离原则,你这么是违背这条。
所以不推荐暴露一个大接口的方式来操作。
若是你期望对于其中的部分做组合,那么可以用门面模式来搞定。
若是你接口存在多个纬度的变化的话,那么可以用桥接模式来搞定。

建议多看看OOP,OOA的设计原则和23个设计模式。

其实,你可以认为Kotlin支持多继承。Kotlin的接口中可以有方法实现,而类可以同时实现多个接口。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题