1. 程式人生 > >java 介面卡模式(adapter pattern)

java 介面卡模式(adapter pattern)

介面卡就是一種適配中介軟體,它存在於不匹配的二者之間,用於連線二者,將不匹配變得匹配。

場景:電腦讀取記憶體卡中的內容,記憶體卡是沒有辦法直接插在電腦的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 {
    public
void 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();
    }
}

輸出內容為: