天天看小說

第22章

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

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

小A:“客戶代碼只要統一調用同一接口就行了,是不是這樣簡單,直接,更緊湊?”

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

小A:“你是說,在軟件開發後期或維護的時候再考慮使用適配器?”

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

小A:“可是不同的程序員定義方法的名稱也可能是不同的呀!”

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

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

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

小A:“這樣吶!”

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

第86章第163章第143章第78章第132章第188章第42章第137章第88章第66章第83章第217章第17章第141章第122章第75章第161章第209章第117章第129章第41章第97章第136章第67章第93章第17章第188章第224章第134章第145章第202章第163章第21章第166章第82章第141章第73章第104章第77章第185章第200章第219章第33章第125章第136章第37章第23章第216章第60章第179章第138章第134章第7章第77章第78章第120章第7章第190章第23章第160章第226章第208章第198章第93章第70章第32章第85章第186章第29章第44章第123章第38章第113章第77章第163章第10章第19章第116章第11章第179章第13章第91章第192章第120章第29章第217章第62章第146章第116章第107章第126章第112章第189章第166章第40章第154章第195章第215章第111章第31章
第86章第163章第143章第78章第132章第188章第42章第137章第88章第66章第83章第217章第17章第141章第122章第75章第161章第209章第117章第129章第41章第97章第136章第67章第93章第17章第188章第224章第134章第145章第202章第163章第21章第166章第82章第141章第73章第104章第77章第185章第200章第219章第33章第125章第136章第37章第23章第216章第60章第179章第138章第134章第7章第77章第78章第120章第7章第190章第23章第160章第226章第208章第198章第93章第70章第32章第85章第186章第29章第44章第123章第38章第113章第77章第163章第10章第19章第116章第11章第179章第13章第91章第192章第120章第29章第217章第62章第146章第116章第107章第126章第112章第189章第166章第40章第154章第195章第215章第111章第31章
主站蜘蛛池模板: 手游| 芜湖市| 德江县| 芜湖县| 高雄市| 西乌| 通河县| 灌云县| 神木县| 云龙县| 河东区| 黑河市| 武川县| 肇州县| 禹城市| 宝清县| 新沂市| 博罗县| 清丰县| 元江| 景谷| 麻江县| 泰顺县| 德钦县| 且末县| 阿拉善右旗| 天全县| 剑川县| 芷江| 西吉县| 安义县| 巨鹿县| 泸溪县| 石渠县| 平远县| 建昌县| 布尔津县| 焦作市| 定南县| 镇巴县| 江永县|