文章詳情頁
Java“Program to an interface”這是什么意思?
瀏覽:128日期:2024-05-07 15:06:16
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解決Java“Program to an interface”這是什么意思??
簡而言之,而不是像這樣寫類
我依靠這個(gè)特定的班級來做我的工作
你寫的方式說
我依賴于任何類,做這個(gè)東西做我的工作。
第一個(gè)示例表示一個(gè)類,該類依賴于特定的具體實(shí)現(xiàn)來執(zhí)行其工作。從本質(zhì)上講,這不是很靈活。
第二個(gè)示例表示寫入接口的類。它不在乎您使用什么具體對象,而只是在意它實(shí)現(xiàn)某些行為。這可以使該類更加靈活,因?yàn)榭梢詾樗峁┰S多具體的實(shí)現(xiàn)來執(zhí)行其工作。
例如,特定類可能需要執(zhí)行一些日志記錄。如果您編寫依賴于TextFileLogger的類,則將永遠(yuǎn)迫使該類將其日志記錄寫到文本文件中。如果要更改日志記錄的行為,則必須更改類本身。該類與它的記錄器緊密相連。
但是,如果您編寫該類以依賴ILogger接口,然后為該類提供TextFileLogger,則您將完成相同的操作,但是還具有更加靈活的優(yōu)點(diǎn)。您可以隨意提供任何其他類型的ILogger,而無需更改類本身。現(xiàn)在,班級及其記錄器之間的聯(lián)系松散了,您的班級更加靈活。
解決方法我一直遇到這個(gè)名詞:
編程到接口。
這到底是什么意思?現(xiàn)實(shí)生活中的設(shè)計(jì)方案將受到高度贊賞。
標(biāo)簽:
java
相關(guān)文章:
1. python - oslo_config2. python - 如何統(tǒng)計(jì)一份英文 API 開發(fā)文檔(如 javadoc文檔)的詞頻?3. mysql優(yōu)化 - mysql 一張表如果不能確保字段列長度一致,是不是就不需要用到char。4. python - 請問這兩個(gè)地方是為什么呢?5. python - 為什么match匹配出來的結(jié)果是<_sre.SRE_Match object; span=(0, 54), match=’’>6. 請教一個(gè)mysql去重取最新記錄7. javascript - 按鈕鏈接到另一個(gè)網(wǎng)址 怎么通過百度統(tǒng)計(jì)計(jì)算按鈕的點(diǎn)擊數(shù)量8. 人工智能 - python 機(jī)器學(xué)習(xí) 醫(yī)療數(shù)據(jù) 怎么學(xué)9. 大家都用什么工具管理mysql數(shù)據(jù)庫?10. php - 有關(guān)sql語句反向LIKE的處理
排行榜

熱門標(biāo)簽