c. 適配器模式
我的筆記本是港貨,它的插頭與我們常用的插座不一樣,所有我出差的時候我必須帶一個適配器,才能使用不同地方的插座。這是一個對適配器模式最經典的描述。當我們設計的系統要與其它系統交互,或者我們設計的模塊要與其它模塊交互時,這種交互可能是調用一個接口,或者交換一段數據,接受方常常因發送方對協議的變更而頻繁變更。這種變更,可能是接受方來源的變更,比如原來是 A 系統,現在變成 B 系統了;也可能是接受方自身的代碼變更,如原來的接口現在增加了一個參數。由于發送方的變更常常導致接受方代碼的不穩定,即頻繁跟著修改,為接受方的維護帶來困難。
遇到這樣的問題,一個有經驗的程序員馬上想到的就是采用適配器模式。在設計時,我方的接口按照某個協議編寫,并且保持固定不變。然后,在與真正對方接口時,在前段設計一個適配器類,一旦對方協議發生變更,我可以換個適配器,將新協議轉換成原協議,問題就解決了。適配器模式應當包含一個接口和它的實現類。接口應當包含一個本系統要調用的方法,而它的實現類分別是與 A 系統接口的適配器、與 B 系統接口的適配器...
?
?
?
我曾經在一個項目中需要與另一個系統接口,起初那個系統通過一個數據集的方式為我提供數據,我寫了一個接收數據集的適配器;后來改為用一個 XML 數據流的形式,我又寫了一個接收 XML 的適配器。雖然為我提供數據的方式不同,但是經過適配器轉換后,輸出的數據是一樣的。通過在 spring 中的配置,我可以靈活地切換到底是使用哪個適配器。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
