Posted on 2008-09-15 17:53
Lv Yuanfang 閱讀(309)
評論(0) 編輯 收藏
移動硬盤與適配器模式
----Head
First Pattern之適配器模式
很多人都有移動硬盤,它比U盤容量大的多,體積也小,攜帶方便,用來拷資料、備份都很不錯。并且硬盤價格越來越便宜,120G的移動硬盤現在才300多。
其實移動硬盤里面就是一塊普通的筆記本硬盤,還有一個IDE口(或SATA口,看硬盤的類型了,現在一般都是SATA口即串口,IDE口就是并口)和USB口的轉換卡,用USB線和電腦上的USB口連接起來就行了。
我手頭有一個40G的IDE口筆記本硬盤,想在PC電腦上用,但又不想把電腦拆開插主板的IDE線上。看到電腦上還有很多空閑的USB口,就想能不能讓筆記本硬盤的IDE口連到電腦的USB口?直接連肯定不行,接口不匹配啊。就去電子市場逛了一個下午,發現有一種轉接卡,一頭可以插IDE口,一頭是USB口,能連USB線,USB線就可以連電腦的USB口了。我買了轉接卡回到家,把轉接卡一頭插在筆記本硬盤的IDE口上,另一頭連上USB線,再把USB線連到電腦的USB口上。大功告成,現在我的筆記本硬盤就變成移動硬盤了。轉接卡就是連接IDE口和USB口的適配器。這就是適配器模式。
下面看適配器的UML類圖:

這個類圖有點問題,其實Adaptee應該是一個接口,還有個實現這個接口的ConcreteAdaptee,而Adapter是目標接口,ConcreteAdapter必須實現Adapter,持有一個Adaptee。移動硬盤和適配器模式對應關系如下:
Adapter:
USB接口
Adaptee:筆記本硬盤的IDE接口
ConcreteAdapter:轉接卡
總而言之,適配器模式就是把一個接口Adaptee,適配成目標接口Adapter。
某些時候適配器和裝飾模式有點相同之處,但是兩者本質是不一樣的。
Adapter是把所包裝的接口,轉換為另一個接口。而Decorator是給所包裝的接口,添加新的行為或方法。