簡體中文 | 繁體中文

大話設計模式-----第22章


丫鬟不願嫁 為君 前妻來襲 嗨,周醫生 總裁掠愛很強勢 若水寒萱 重生之鬼醫傻妃 霸道前女友 意動九天 斬龍 槍炮魔法師 逍遙神君 驕嬌無雙 無限之動漫召喚 蟲群之心 天之戰記 當邪少愛上冷豔女 魔劍群俠傳 浴血成凰 穿越之貓咪不好惹
第22章

小A:“使用一個已經存在的類,如果它的介面,方法和你的要求不相同的時候,可以考慮用介面卡模式嗎?”

大B:“可以啊!如果兩個類所做的事情相同或相似,但是他們有不同的介面的時候要使用它。類都是共享同一個介面,那你想客戶程式碼要怎麼樣才行?”

小A:“客戶程式碼只要統一呼叫同一介面就行了,是不是這樣簡單,直接,更緊湊?”

大B:“是的,軟體都是需要維護的,維護可能會因不同的開發人員,不同的產品,不同的廠家,造成功能類似但是介面不同,這時就可以使用介面卡。”

小A:“你是說,在軟體開發後期或維護的時候再考慮使用介面卡?”

大B:“在設計階段沒必要把類似的功能類的介面設計的不同。”

小A:“可是不同的程式設計師定義方法的名稱也可能是不同的呀!”

大B:“那也是,但是在一般公司內部,類和方法的命名是有規範的,做好前期就設計,介面不相同的時候,第一時間不應該考慮用介面卡,而是考慮透過重構統一介面。”

小A:“也就是說要在雙方都不太容易修改的時候,這個時候再使用介面卡模式適配?不是一出現不同時就使用它?會不會有在設計初就考慮用介面卡模式的情況哩?”

大B:“有,就好像在設計一個系統時使用第三方開發元件,這個元件的介面與系統介面不相同,這個時候就不用為了迎合它去改動自己的介面,在這種情況下,雖然是在開發設計階段,解決介面不同的問題也可以用介面卡模式。”

小A:“這樣吶!”

大B:“有人舉過這樣一個例子:虎與飛禽是沒有直接關聯的兩類動物,但是現在出來了個‘飛虎’,它同時具有虎肉食動物跟飛禽會飛的特質,要在飛禽這個類系中新增一個成員類‘飛虎’,除了直接實現‘飛虎’類,還有一種簡單的辦法是實現一個Adapter類,在其中包容一個虎的物件,同時實現飛禽的介面即可。當然,對於這個問題,多繼承或者實現多介面可能是一個更直觀的作法,在實際應用中,可視具體需要確定採用何種作法。”

推薦小說