鍍金池/ 問(wèn)答/Java  網(wǎng)絡(luò)安全/ java / kotlin 如何實(shí)現(xiàn)多重繼承

java / kotlin 如何實(shí)現(xiàn)多重繼承

本意是對(duì)外提供一個(gè)接口,但是功能太多,還是希望分組實(shí)現(xiàn)。
接口部分那就分成多個(gè)接口,然后用一個(gè)接口全部實(shí)現(xiàn)。
但是實(shí)現(xiàn)類呢?功能分散在多個(gè)小的實(shí)現(xiàn)類中,最終還要在一個(gè)大子類中全部代理一遍?太累了。安順序繼承一大串?太亂了。
有沒(méi)有什么好的實(shí)現(xiàn)方案。kotlin 下有好的寫法么? 怎么能夠 by 多個(gè)?

回答
編輯回答
病癮

OOA和OOP中的一個(gè)設(shè)計(jì)原則就是接口分離原則,你這么是違背這條。
所以不推薦暴露一個(gè)大接口的方式來(lái)操作。
若是你期望對(duì)于其中的部分做組合,那么可以用門面模式來(lái)搞定。
若是你接口存在多個(gè)緯度的變化的話,那么可以用橋接模式來(lái)搞定。

建議多看看OOP,OOA的設(shè)計(jì)原則和23個(gè)設(shè)計(jì)模式。

2017年5月18日 08:57
編輯回答
終相守

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

看到一個(gè)kotlin的blog: 使用接口委托可以部分解決問(wèn)題:
這是別人的blog

https://www.cnblogs.com/figozhg/p/6979138.html
2017年4月22日 22:24
編輯回答
失魂人

其實(shí),你可以認(rèn)為Kotlin支持多繼承。Kotlin的接口中可以有方法實(shí)現(xiàn),而類可以同時(shí)實(shí)現(xiàn)多個(gè)接口。

2017年9月23日 23:43
編輯回答
誮惜顏

沒(méi)有辦法。java不支持多繼承,你只能用組合模式來(lái)寫。。

2018年2月11日 13:30