本意是对外提供一个接口,但是功能太多,还是希望分组实现。
接口部分那就分成多个接口,然后用一个接口全部实现。
但是实现类呢?功能分散在多个小的实现类中,最终还要在一个大子类中全部代理一遍?太累了。安顺序继承一大串?太乱了。
有没有什么好的实现方案。kotlin 下有好的写法么? 怎么能够 by 多个?
本意是对外提供一个接口,但是功能太多,还是希望分组实现。
接口部分那就分成多个接口,然后用一个接口全部实现。
但是实现类呢?功能分散在多个小的实现类中,最终还要在一个大子类中全部代理一遍?太累了。安顺序继承一大串?太乱了。
有没有什么好的实现方案。kotlin 下有好的写法么? 怎么能够 by 多个?
scala的trait倒是支持,kotlin有类似的特性?
看到一个kotlin的blog: 使用接口委托可以部分解决问题:
这是别人的blog
https://www.cnblogs.com/figozhg/p/6979138.html
OOA和OOP中的一个设计原则就是接口分离原则,你这么是违背这条。
所以不推荐暴露一个大接口的方式来操作。
若是你期望对于其中的部分做组合,那么可以用门面模式来搞定。
若是你接口存在多个纬度的变化的话,那么可以用桥接模式来搞定。
建议多看看OOP,OOA的设计原则和23个设计模式。
4 回答1.4k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答740 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
2 回答1.3k 阅读
没有办法。java不支持多继承,你只能用组合模式来写。。