文章詳情頁
Java編程里一般怎么管理接口的實現(xiàn)類?
瀏覽:126日期:2024-01-11 13:22:22
問題描述
比如說Color接口有三個實現(xiàn)類分別是:Red、Blue和Green現(xiàn)在我要在運行的時候才決定用某個實現(xiàn)類怎么管理比較優(yōu)雅?別if..else..
問題解答
回答1:工廠方法模式
回答2:編程中有順序、分支、循環(huán)三種結(jié)構(gòu)。if-else作為最常用的分支結(jié)構(gòu),是不可或缺的。
關(guān)于這個問題,對于只要學(xué)習(xí)過編程的人,if-else都是最簡明的編程方式。而最簡單的就是最優(yōu)雅的。
而if-else有時候看起來比較糟糕的地方在于,if中嵌套很多層if-else,導(dǎo)致邏輯判斷深度過大。
所以好的解決方案是,在能夠提前退出if的的時候就提前返回結(jié)果,保證if的深度最大為兩層。
這里有一個類似的問題可以看下:有很多if-else,該如何優(yōu)化?
設(shè)計模式可以為你帶來便利,但是不要在自己的解決方案中強套設(shè)計模式,你需要為自己的代碼在簡單的設(shè)計與設(shè)計模式之間做出折衷。
回答3:題主的描述感覺比較符合設(shè)計模式中的策略模式。
回答4:為什么不用多態(tài)了,丟給隱式的類型轉(zhuǎn)換。根據(jù)接口方法的實現(xiàn)來處理啊。
標(biāo)簽:
java
相關(guān)文章:
1. python - pymysql建立連接出錯2. 默認(rèn)輸出類型為json,如何輸出html3. mysql 遠程連接出錯10060,我已經(jīng)設(shè)置了任意主機了。。。4. python的正則怎么同時匹配兩個不同結(jié)果?5. 數(shù)組排序,并把排序后的值存入到新數(shù)組中6. php多任務(wù)倒計時求助7. MySQL的聯(lián)合查詢[union]有什么實際的用處8. PHP訂單派單系統(tǒng)9. html5 - css3scale和rotate同時使用轉(zhuǎn)換成matrix寫法該如何轉(zhuǎn)換?10. win10 python3.5 matplotlib使用報錯
排行榜

熱門標(biāo)簽