文章詳情頁
Java“Program to an interface”。這是什么意思?
瀏覽:232日期:2024-04-14 18:52:20
如何解決Java“Program to an interface”。這是什么意思??
簡而言之,而不是像這樣寫類
我依靠這個特定的班級來做我的工作
你寫的方式說
我依賴于任何類,做這個東西做我的工作。
第一個示例表示一個類,該類依賴于特定的具體實現(xiàn)來執(zhí)行其工作。從本質(zhì)上講,這不是很靈活。
第二個示例表示寫入接口的類。它不在乎您使用什么具體對象,而只是在意它實現(xiàn)某些行為。這可以使該類更加靈活,因為可以為它提供許多具體的實現(xiàn)來執(zhí)行其工作。
例如,特定類可能需要執(zhí)行一些日志記錄。如果您編寫依賴于TextFileLogger的類,則將永遠(yuǎn)迫使該類將其日志記錄寫到文本文件中。如果要更改日志記錄的行為,則必須更改類本身。該類與它的記錄器緊密相連。
但是,如果您編寫該類以依賴ILogger接口,然后為該類提供TextFileLogger,則您將完成相同的操作,但是還具有更加靈活的優(yōu)點。您可以隨意提供任何其他類型的ILogger,而無需更改類本身。現(xiàn)在,班級及其記錄器之間的聯(lián)系松散了,您的班級更加靈活。
解決方法我一直遇到這個名詞:
編程到接口。
這到底是什么意思?現(xiàn)實生活中的設(shè)計方案將受到高度贊賞。
標(biāo)簽:
java
相關(guān)文章:
1. shell - mysql更新錯誤2. javascript - vue中使用prop傳遞數(shù)據(jù)問題3. php對mysql提取數(shù)據(jù)那種速度更快4. javascript - avalon.js ms-on 事件綁定無效 ?5. javascript - immutable配合react提升性能?6. mysql - 在log日志中已知用戶的某一步操作,如何獲取其上一步操作?7. python小白 自學(xué)看書遇到看不懂的地方8. 如何設(shè)置一個無限循環(huán)并打破它。(Java線程)9. ubuntu如何啟動sublime10. 網(wǎng)頁爬蟲 - 如何使用使用java抓取信息并制作一個排名系統(tǒng)?
排行榜

熱門標(biāo)簽
網(wǎng)公網(wǎng)安備