一、定义
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器能让原来接口不兼容的两个类可以合作无间。
使用场景:1. 接口不兼容;2. 输入不可预期,统一输出等场景
二、种类
类适配器:继承的实现方式
// 目标接口 public interface Target { public int getCount(); } // 现有类 public class Source { public int getNum() { return 0; } } // 适配器 public class Adapter extends Source implements Target { @Override public int getCount() { return getNum(); } }
对象适配器:组合的实现方式
// 目标接口 public interface Target { public int getCount(); } // 现有类 public class Source { public int getNum() { return 0; } } // 组合适配器 public class Adapter implements Target { private Source source; public Adapter(Source source) { this.source = source; } @Override public int getCount() { return source.getNum(); } }
三、总结
优点:更好的复用性和扩展性
缺点:过多的使用适配器,会让系统变得非常零乱,不易整体把握