/** * 適配器模式(Adapter):將一個類的接口轉換成客戶但願的另外一個接口,adapter模式 * 使得本來因爲接口不兼容,而不能一塊兒工做的那些類能夠一塊兒工做.對修改關閉,對拓展開放. * 不兼容的話 就加一個轉接頭. */ public class SixNine { /** * 能夠看到work(powerB); 是報錯的, powerA和powerB是同等級的對象 * */ public static void main(String[] args) { /** * 能夠看到 powerA和 powerB 是不能夠一塊兒工做的,可是 * 在適配器Adapter的 轉換頭的做用下能夠都在work 下工做. */ PowerA powerA = new PowerAImpl(); work(powerA); PowerB powerB = new PowerBImpl(); Adapter bToAdapter = new Adapter(powerB); work(bToAdapter); } public static void work(PowerA a) { System.out.println("正在插入..."); a.insert(); System.out.println("插入結束..."); } } class Adapter implements PowerA{// 針對PowerA 的類型作一個接口. private PowerB powerB; // 爲了使PowerB 適用於上述接口. public Adapter(){}; public Adapter(PowerB powerB) { this.powerB = powerB; } @Override public void insert() { powerB.connect(); } } interface PowerB{ public void connect(); } class PowerBImpl implements PowerB{ @Override public void connect() { System.out.println("電源B開始工做..."); } } interface PowerA { public void insert(); } class PowerAImpl implements PowerA{ @Override public void insert() { // TODO Auto-generated method stub System.out.println("電源A開始工做..."); } }