设计模式-适配器模式

1. 类适配器模式 目标角色,这里假如规定了可以播放视频的格式

public interface PlayerFormat { public void playerMP4(); public void playerAVI(); public void playerRMVB(); }

【设计模式-适配器模式】当前的播放器只能播放MP4格式的视频
public class Player { public void playerMP4() { System.out.println("播放MP4视频"); }; }

使用适配器继承了Player,又实现了PlayerFormat的接口,现在这个视频器就能播放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视频

    推荐阅读