java 介面卡模式(adapter pattern)
阿新 • • 發佈:2018-12-27
介面卡就是一種適配中介軟體,它存在於不匹配的二者之間,用於連線二者,將不匹配變得匹配。
場景:電腦讀取記憶體卡中的內容,記憶體卡是沒有辦法直接插在電腦的USB介面上,那就不需要一個轉換器。
下面的例子實現了上述的功能
/** * @author liusongwei * @Title: MemoryCard * @ProjectName demohystrix * @Description: 定義一個記憶體卡介面 * @date 2018/12/279:15 */ public interface MemoryCard { public String novel(); }
package com.example.demohystrix.designpattern.structure.adapter; /** * @author liusongwei * @Title: MemoryCardImpl * @ProjectName demohystrix * @Description: 實現記憶體卡介面並編寫記憶體中的內容 * @date 2018/12/279:18 */ public class MemoryCardImpl implements MemoryCard { @Override public String novel() { System.out.println("開始讀取小說中的內容"); return "盤古開天闢地,名曰《鬥魚》"; } }
package com.example.demohystrix.designpattern.structure.adapter; /** * @author liusongwei * @Title: Computer * @ProjectName demohystrix * @Description: 定義一個電腦介面 * @date 2018/12/279:17 */ public interface Computer { publicvoid read(); }
package com.example.demohystrix.designpattern.structure.adapter; /** * @author liusongwei * @Title: Adapter * @ProjectName demohystrix * @Description: 實現一個電腦介面的介面卡,並讀取記憶體卡中的內容 * @date 2018/12/279:20 */ public class Adapter implements Computer { private MemoryCard memoryCard; public Adapter(MemoryCard memoryCard){ this.memoryCard = memoryCard; } @Override public void read() { String str = memoryCard.novel(); System.out.println("讀取的內容為:" + str); } }
package com.example.demohystrix.designpattern.structure.adapter; /** * @author liusongwei * @Title: Demo * @ProjectName demohystrix * @Description: TODO * @date 2018/12/279:22 */ public class Demo { public static void main(String[] args){ Computer computer = new Adapter(new MemoryCardImpl()); computer.read(); } }
輸出內容為: