官术网_书友最值得收藏!

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)用都可以使用這個組件。

這樣,組件才可以被廣泛重用。

主站蜘蛛池模板: 山东省| 乐陵市| 延吉市| 云霄县| 吴堡县| 连山| 都昌县| 京山县| 威海市| 博罗县| 永城市| 云龙县| 沾益县| 紫金县| 新蔡县| 仁怀市| 揭阳市| 京山县| 鄂州市| 施甸县| 岳池县| 南雄市| 永泰县| 隆尧县| 万源市| 招远市| 白山市| 阿克陶县| 通渭县| 清涧县| 余庆县| 大安市| 宜良县| 虎林市| 镇江市| 改则县| 成武县| 西乡县| 本溪市| 广南县| 沁水县|