Java 23种设计模式之适配器模式
2018-01-01 18:47
585 查看
1. 概念
将一个类的接口转换为客户希望的另外一个接口,Adapter模式 使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 主要分为三类: 类的适配器模式 对象的适配器模式 接口的适配器模式
2. 创建父类球员接口
public abstract class Player { protected String name; public Player(String name){ this.name = name; } /** * 进攻 */ public abstract void attack(); /** * 防御 */ public abstract void defense(); }
3. 创建球员类实现父类接口
1. 创建前锋球员 public class ForwardPlayer extends Player{ public ForwardPlayer(String name) { super(name); } @Override public void attack() { System.out.println("前锋 "+name +" 进攻"); } @Override public void defense() { System.out.println("前锋 "+name +" 防御"); } } 2. 创建后锋球员 public class GuardPlayer extends Player{ public GuardPlayer(String name) { super(name); } @Override public void attack() { System.out.println("后锋 "+name +" 进攻"); } @Override public void defense() { System.out.println("后锋 "+name +" 防御"); } } 3. 创建外籍中锋球员 public class ForeignCenterPlayer extends Player{ public ForeignCenterPlayer(String name) { super(name); } @Override public void attack() { System.out.println("中锋 "+name +" 进攻"); } @Override public void defense() { System.out.println("中锋 "+name +" 防御"); } }
4. 创建适配器或者说翻译者类 在这里创建需要翻译的中锋球员类
public class PlayerAdapter extends Player{ private ForeignCenterPlayer centerPlayer; public PlayerAdapter(String name) { super(name); centerPlayer = new ForeignCenterPlayer(name); } @Override public void attack() { centerPlayer.attack(); } @Override public void defense() { centerPlayer.defense(); } }
5. 测试类
@org.junit.Test public void test(){ //创建前锋对象 Player forward = new ForwardPlayer("zlc"); forward.attack(); //创建中锋对象 Player guard = new GuardPlayer("cc"); guard.attack(); //创建翻译者对象 Player adapter = new PlayerAdapter("xixi"); adapter.attack(); adapter.defense(); }
6.小结
使用一个已经存在的类,但如果它的接口,也就是它的方法和你的要求不相同时, 就应该考虑使用适配器模式,不要无视应用场合,盲目使用, 事后控制不如事中控制,事中控制不如事前控制。
相关文章推荐
- Java23种设计模式之适配器模式(Adapter Pattern)
- 23种经典设计模式的java实现_2_适配器模式
- Java23种设计模式——深入理解对象适配器模式与抽象外观模式
- Java23种设计模式案例:适配器模式(adapter)
- 重学java23种设计模式(6)适配器模式
- 23种经典设计模式的java实现_2_适配器模式
- java23种常用设计模式之适配器模式(Adapter)
- Java开发中的23种设计模式之六:适配器模式(Adapter)
- Java23种设计模式之-----适配器模式
- JAVA的23种设计模式---适配器模式
- Java开发中的23种设计模式详解----适配器模式
- Java经典23种设计模式之结构型模式(三)------附代理模式、适配器模式、外观模式区别
- java23种设计模式之适配器模式(Adapter)
- Java 23种设计模式之 - 适配器模式
- Java的23种设计模式----适配器模式
- JAVA开发的23种设计模式之 --- 适配器模式
- java23种设计模式--适配器模式(Adapter)
- java_23种设计模式之适配器模式
- 23种设计模式(5) java适配器模式
- 23种java设计模式之适配器模式