设计模式(六):适配器模式

优点:

  ① 通过引入一个适配器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接口,然后将旧类属性及方法放入此适配器,用来代替旧类)  --  本国队员(已转化)
     */

 

posted on 2019-01-04 16:47  书生游  阅读(120)  评论(0编辑  收藏  举报