设计模式(六):适配器模式
优点:
① 通过引入一个适配器Adapter来重用现有的不兼容的旧类Adeptee,而无需修改旧类原有结构。
② 增加了旧类的复用性;适配器的灵活性和扩展性都非常好
缺点:
① 一次最多只能适配一个旧类,不能同时适配多个旧类。
适用范围:需要有旧类,而旧类的接口不符合新系统的需要,甚至旧类都没有源代码
客户端:
Player b = new ForWards("巴蒂尔");
b.attack(); // 进攻命令(英文)
//作废
// Player y = new Center("姚明");
// y.attack();
Player ym = new Translator("姚明"); //适配器,此处相当于翻译
ym.attack(); // 进攻命令(已适配为中文)
一句话概括:如同一个电源适配器,不论什么电压,只要经过适配器,都能变成适合的220V
/** * Player (进攻、防守抽象方法) * ForWords Center Guards (实例化Player接口) -- 本国队员 * * ForeignCenter (旧类,没有实现Player接口,但包含有类似的进攻、防守的方法) -- 外国队员 * * Translator (适配器,同样实例化Player接口,然后将旧类属性及方法放入此适配器,用来代替旧类) -- 本国队员(已转化) */