http://www.books.com.tw/products/0010750585
chap10.
轉接器模式 Adapter
目的:將個介面轉換成另外一個介面,讓原本與客戶端不能相容的介面可以正常工作
package com.ssc24.chap10.demo01;
public class Adapter implements Wizard {
private Archer archer;
public Adapter(Archer archer) {
this.archer = archer;
}
@Override
public void fireBall() {
System.out.println("在弓箭上包一層布->淋上花生油->點火");
this.archer.shot();
System.out.println("火球飛出去了");
}
}
package com.ssc24.chap10.demo01;
public interface Archer {
void shot();
}
package com.ssc24.chap10.demo01;
public class NormalArcher implements Archer {
public NormalArcher() {
System.out.println("產生 一個弓箭手 ");
}
@Override
public void shot() {
System.out.println("射箭");
}
}
package com.ssc24.chap10.demo01;
public interface Wizard {
void fireBall();
}
package com.ssc24.chap10.demo01;
import static org.junit.Assert.*;
import org.junit.Test;
public class AdapterClient {
@Test
public void test() {
System.out.println("===轉接器模式測試===");
System.out.println("我們需要火球才能把樹上的蜂窩砸爛,糟糕的是隊伍中沒有法師");
System.out.println("幸好隊伍中有一個弓箭手跟馬蓋先工具包,讓弓箭手也能發火球");
Wizard wizard = new Adapter(new NormalArcher());
wizard.fireBall();
}
} /** ===轉接器模式測試=== 我們需要火球才能把樹上的蜂窩砸爛,糟糕的是隊伍中沒有法師 幸好隊伍中有一個弓箭手跟馬蓋先工具包,讓弓箭手也能發火球 產生 一個弓箭手 在弓箭上包一層布->淋上花生油->點火 射箭 火球飛出去了 **/