設計模式(三) 介面卡模式

2021-10-09 22:23:43 字數 1769 閱讀 2158

目的:將乙個類的介面轉換成客戶希望的另外乙個介面。介面卡模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作.

假設場景:以前的手機是有記憶體卡的,手機使用者把資料放在記憶體卡裡,手機是可以直接讀取記憶體卡中的資料的。但是後來這種用記憶體卡的手機慢慢被淘汰了,可是你又想讀取記憶體卡中的資料,於是你買了個電腦讀取,但是電腦只能讀取u盤的資料,不能夠直接讀取記憶體卡中的資料,電腦需要讀卡器間接讀取記憶體卡中的資料。

這裡的記憶體卡就是需要轉換的介面,我們現有的東西(電腦)無法相容使用這個介面(記憶體卡),所以我們需要乙個介面卡(讀卡器),讓電腦持有讀卡器,這樣才可以讀取記憶體卡的資料。

編寫**:

u盤 和 記憶體卡都是外部裝置,我們統一編寫個抽象類:

package adapter.study;

/** * 磁碟

* @author 阿呆的小雞仔

*/public

abstract

class

disk

public

void

setdata

(string data)

}

package adapter.study;

/** * 記憶體卡類

* @author 阿呆的小雞仔

*/public

class

memorycard

extends

disk

package adapter.study;

/** * u盤

* @author 阿呆的小雞仔

*/public

class

udick

extends

disk

讀卡器和電腦都可以讀取外部裝置的資料,我們就寫個讀取外部資料介面:
package adapter.study;

/** * 讀取外部資料

* @author 阿呆的小雞仔

*/public

inte***ce

readexternaldata

package adapter.study;

/** * 讀卡器

* @author 阿呆的小雞仔

*/public

class

cardreaderadapter

implements

readexternaldata

}

package adapter.study;

/** * @author 阿呆的小雞仔

*/public

class

computer

implements

readexternaldata

else

if(disk instanceof

memorycard

)else

}}

客戶端使用電腦讀取記憶體卡資料:
package adapter.study;

/** * @author 阿呆的小雞仔

設計模式 介面卡模式 類介面卡 物件介面卡

乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...

設計模式之介面卡模式(類介面卡模式)

介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...

設計模式 介面卡模式

01 02 author rollen holt 設計模式之 介面卡模式 03 04 05 inte ce window 11 12 abstract class windowadapter 16 public void close 19 public void activated 22 publi...