1. 類適配器模式
目標(biāo)角色县恕,這里假如規(guī)定了可以播放視頻的格式
public interface PlayerFormat {
public void playerMP4();
public void playerAVI();
public void playerRMVB();
}
當(dāng)前的播放器只能播放MP4格式的視頻
public class Player {
public void playerMP4() {
System.out.println("播放MP4視頻");
};
}
使用適配器繼承了Player斜筐,又實(shí)現(xiàn)了PlayerFormat的接口必搞,現(xiàn)在這個(gè)視頻器就能播放MP4端礼、AVI、RMVB三種格式的視頻了
public class PlayerAdapter extends Player implements PlayerFormat{
@Override
public void playerAVI() {
System.out.println("播放AVI視頻");
}
@Override
public void playerRMVB() {
System.out.println("播放RMVB視頻");
}
}
測試
PlayerAdapter player = new PlayerAdapter();
player.playerMP4();
player.playerAVI();
player.playerRMVB();
輸出
播放MP4視頻
播放AVI視頻
播放RMVB視頻
2. 對象適配器模式
對象適配器模式與類適配器就adapter不同冯乘,具體如下代碼
public class PlayerAdapter2 implements PlayerFormat{
private Player player;
public PlayerAdapter2(Player player) {
super();
this.player = player;
}
@Override
public void playerMP4() {
player.playerMP4();
}
@Override
public void playerAVI() {
System.out.println("播放AVI視頻");
}
@Override
public void playerRMVB() {
System.out.println("播放RMVB視頻");
}
}
測試
PlayerAdapter2 player = new PlayerAdapter2(new Player());
player.playerMP4();
player.playerAVI();
player.playerRMVB();
輸出
播放MP4視頻
播放AVI視頻
播放RMVB視頻