- Java組件設(shè)計
- 孔德生編著
- 478字
- 2018-12-29 19:21:03
2.5 組件設(shè)計實現(xiàn):對使用環(huán)境無假設(shè)
組件的內(nèi)部實現(xiàn),是否可以對將來組件被使用的環(huán)境做些假設(shè)?比如,是在Servlet容器中運行,或僅使用一個組件的實例,或僅處理一個目錄…….
如果組件設(shè)計者對組件將來被使用的環(huán)境做了一些假設(shè),認(rèn)為這些條件必然被滿足,那么組件的代碼實現(xiàn)就會和這些假設(shè)條件相關(guān)。如果這些條件不成立,則組件無法被使用。比如,組件設(shè)計者認(rèn)為,將來應(yīng)用中一個組件實例就能滿足其需要,因此組件就設(shè)計成了單實例。當(dāng)一個特殊的應(yīng)用出現(xiàn),需要使用兩個組件實例來處理不同的場景時,發(fā)現(xiàn)組件已經(jīng)被設(shè)計成單實例,無法滿足應(yīng)用的這種“特殊”需求。
這種需求,真的很特殊嗎?
客觀上講,需求來自于具體的應(yīng)用,來自客戶的使用場景和要解決的問題。需求,是獨立于設(shè)計和實現(xiàn)的,尤其與組件的設(shè)計實現(xiàn)無關(guān)。組件設(shè)計者之所以認(rèn)為這種需求很“特殊”,是因為這個需求超出了組件設(shè)計者原來所做的假設(shè)。根本上講,組件設(shè)計者不應(yīng)該對組件將來的使用環(huán)境做任何假設(shè),這樣組件的使用場合僅受限于組件的能力集,只要應(yīng)用需要的功能在組件的能力集范圍內(nèi),各種環(huán)境下的不同應(yīng)用都可以使用這個組件。
這樣,組件才可以被廣泛重用。
推薦閱讀
- Java開發(fā)技術(shù)全程指南
- 數(shù)據(jù)運營之路:掘金數(shù)據(jù)化時代
- 網(wǎng)絡(luò)化分布式系統(tǒng)預(yù)測控制
- 水下無線傳感器網(wǎng)絡(luò)的通信與決策技術(shù)
- 悟透AutoCAD 2009案例自學(xué)手冊
- 網(wǎng)絡(luò)服務(wù)搭建、配置與管理大全(Linux版)
- 筆記本電腦電路分析與故障診斷
- C#求職寶典
- 30天學(xué)通Java Web項目案例開發(fā)
- 渲染王3ds Max三維特效動畫技術(shù)
- Flink內(nèi)核原理與實現(xiàn)
- Mastering Android Game Development with Unity
- Microsoft 365 Mobility and Security:Exam Guide MS-101
- AWS Administration:The Definitive Guide(Second Edition)
- 設(shè)計中的人因:34個設(shè)計小故事