`
chendw_hz
  • 浏览: 10577 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

适配器模式(变压器模式)

 
阅读更多

为什么要 用适配器模式。就是把两个完全不关联或者不相同的类纠合一起时才使用这个模式。

这个模式涉及到角色:
源角色:需要适配的角色。
目标角色:期待使用的接口。
适配器角色:把源角色转化成目标角色。这个是模式的核心。着重转化功能。

适配器模式分两种情况:
类的适配器模式和对象的适配器模式 。

首先来讲讲类的适配器模式:

如下例:

指方为圆的故事。

//方形接口

public interface Square{

   //方形具有画方形的功能

  public void drawSquare();

   //是否是图形

  public boolean isGraphical();

}

 

这里主要是想用目标接口。。但是又要能提供画方形功能。此时目标接口如下

//圆形接口 即目标接口

public interface Circular{

 

  //具有画方形的功能

  public void drawCircular();

 

//是否都是图形

  public boolean isGraphical();

}
                                                                                                                                                                       

为了能使圆形接口能使用画方形功能。则适配器角色产生。适配器角色作用就是能够提供目标角色不具有的源角色功能。

接口如下

public class CircularAdator implements Circular,Square{

   public void drawSquare(){

       System.out.println("我是方形接口的功能 我画方形");

  }

 

  public void drawCircular(){

        System.out.println("我是圆形接口的功能。我画圆形");

  }

 

 //方形和圆形都有此功能。

 public boolean isGraphical(){

        return true;

 }

 

类适配模式。比较简单。。而且只能适合单一的类。子类和多个类都都无法重用这个适配器。如果要适配分别要针对每个子类进行适配。这样维类就会越来越臃肿。而且也不可取。

对象适配器。主要使用聚合/组合原则进行的适配。通过对上面的接口改造如下。

//被适配的接口 方形接口 拥有画方形的能力

 public  interface Square{

    //画方形图画的能力

    public void drawSquare();

     //是否是图形 指的是形状

    public boolean isGraphical();

 }

 

//圆形接口,目标接口 我们需要的接口

public interface Circulare{

   //拥有画圆形的能力

   public void drawCirculare();

   

  //同样是图形

   public void isGraphical();

}

 

//具体被适配的接口的实现类。。这里也可以直接适配

public class SquareAdaptee implements Square{

  //具有画方形的能力

  public void drawSquare(){

       System.out.println("我是方形图形噢。。")

  }

 

 public boolean isGraphical(){

       return true;

  }

}

 

//圆形适配器类,是我们的目标类,实现圆形接口,本身拥有画圆形的能力之外。同时需要提供方形的能力

public class CirculareAdaptor implements Circulare{

  //组合方形接口,适配

  private Square squareAdaptee;

 //构造子

  public CirculareAdaptor(Square squareAdaptee){

    this.squareAdaptee =squareAdaptee;

 }

   public void drawCirculare(){

           System.out.println("我具有画圆形的能力噢");

  }

   //是图形 

  public boolean isGraphical(){

    return true;

  }

 

//委托方形去画。圆形不具有画方形的功能

public void drawSquare(){

  squareAdaptee.drawSquare();

 }

}

针对对象适配器模式。因为是使用了组合和聚合原则。源接口(被适配的类)的子类都适用这个适配器类,不需要增加具体子类的适配器类。从而减轻了类的维护成本。

缺省适配器类。

 如果源和目标接口为同一个类。又由于我们不需要源类所有方法。我们提供源类的平庸实现。后续子类继承时。我们有选择我们需要的功能方法。

 例省略。

应用场景:

 1,我们需要的目标的角色功能。但是源口接口没没有的

2,当源接口无法修改时。我们需要适配角色来达到我们需要的接口的目的。

 

分享到:
评论

相关推荐

    C#实例解析适配器设计模式

     适配器模式又叫变压器模式,也叫包装模式。  这里作者举得例子并没有实现把一个接口或类转换到另外一个可以使用的类,仅仅是把输入参数做了判断,这是不是适配器模式我不予置评,下面贴出我实现的适配器模式。...

    java的23种设计模式

    1、工厂模式 2、建造模式 3、工厂方法模式 4、原始模型模式 5、单例模式 6、适配器(变压器)模式 7、桥梁模式

    浅析java常用的设计模式(doc-23页).doc

    6、适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从 而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参 数返还一个合适的实例给客户端。 7、桥梁模式:将...

    电子测量中的安森美推出高能效紧凑型笔记本电脑适配器方案

     这些IC采用了专有的软跳周期(Soft Skip)模式,在跳周期模式期间渐进增加峰值电流 ,降低可听噪声的风险,从而节省更多的元器件,并简化变压器的设计和制造。这些新控制器结合跳周期和频率反走功能,在轻

    电源技术中的如何设计更高效、更低EMI的准谐振适配器

    准方波谐振转换器也称准谐振(QR)转换器,广泛用于电源适配器。准方波谐振的关键特征是金属氧化物半导体场效应晶体管(MOSFET)在漏极至源极电压(VDS)达到其最低值时导通,从而减小开关损耗及改善电磁干扰(EMI)信号。 ...

    安森美推出高能效紧凑型笔记本电脑适配器方案

     这些IC采用了专有的软跳周期(Soft Skip)模式,在跳周期模式期间渐进增加峰值电流 ,降低可听噪声的风险,从而节省更多的元器件,并简化变压器的设计和制造。这些新控制器结合跳周期和频率反走功能,在轻

    TI - 为100W USB电力输送适配器提供超高功率密度

    而且,QR反激在不连续电流传导模式下工作,且在所有输出电压范围内都不能实现全软开关。此外,变压器漏感的损耗限制了实际的开关频率。当设计人员想要实现高功率密度和小适配器尺寸时,上述不足就给功能的实现带来了...

    元器件应用中的产生双极性输出的无变压器 DC/DC 变换器

    该电路所用的一种结构,能在 DC/DC 变换器处于关机模式时切断两个输出,这样就使处于关机(待机)模式时的静态电流很小。此外,无论输入电压高于或低于 5V,该电路都能提供经稳压的正5V和负 5V。因此,该电路可以由...

    电源技术中的安森美推出固定频率电流模式控制器集成电路(IC)

     这些IC采用了专有的软跳周期(Soft Skip)模式,在跳周期模式期间渐进增加峰值电流 ,降低可听噪声的风险,从而节省更多的元器件,并简化变压器的设计和制造。这些新控制器结合跳周期和频率反走功能,在轻

    65W GaN SCH.pdf

    采用NCP1342制作的QR模式 氮化镓NV6115和RM8变压器方案65W,PD快充电源,超小型电源

    电源技术中的士兰微电子推出一款应用于开关电源的内置高压MOSFET、电流模式PWM控制器

    可广泛应用于机顶盒、DVD播放机、电源适配器等整机产品中。  内置的15ms软启动电路减小了电路启动时变压器的应力;电路的开关频率为67KHz,振荡电路产生的频率抖动,可以降低EMI;在待机模式下,电路进入打嗝模式...

    电源技术中的利用高性能PWM控制器芯片SE3910构建AC/DC转换器解决方案

    一般都使用脉冲宽度调制(PWM)控制芯片来实现PWM的调制,开关控制模式相对直流工作模式有很高的工作效率,使用反激离线工作模式,提高了系统工作的安全性,非常适合应用在便携式充电设备及电源适配器,比如,手机...

    电源技术中的基于SE3910的高性能隔离式AC/DC电源解决方案

    一般都使用脉冲宽度调制(PWM)控制芯片来实现PWM的调制,开关控制模式相对直流工作模式有很高的工作效率,使用反激离线工作模式,提高了系统工作的安全性,非常适合应用在便携式充电设备及电源适配器,比如,手机...

    电源技术中的OnSemi NPC1337 60W适配器参考设计方案

    OnSemi公司的NCP1337是一款结合电流模式调节器和退磁检测器的芯片,以充分确保边界线/临界传导模式在任何负载/传输线条件连同最低漏电压开关(准-谐振操作)。因为Soxyless概念,变压器铁心重置检测在内部完成,没有...

    java面试800题

    facade门面模式、proxy代理模式、adapter适配器(变压器)模式、composite合成模式、decorator装饰模式、bridge桥梁模式、flyweight享元模式 行为模式 template模板方法模式、memento备忘录模式、observer观察者模式...

    工业电子中的LIA脉冲功率控制系统

    Marx升压通过步进电机带动自耦变压器来实现所带来的精度低、磨损大等缺陷,本系统采用Chroma可编程交流电源对Marx进行升压较好地解决了上述问题,并利用GPIB-LAN网络适配器,基于客户机/服务器模式在LabWindows/CVI...

    基于STM L4984D及SRK200A的400W适用于AIO电脑电源或大功率电源适配器方案-电路方案

    该板的主要重点是轻载效率,通过PFC和LLC控制器的突发模式功能以及L6699器件的自适应死区时间实现,由内部逻辑根据半桥节点转换时间进行调制,允许变压器磁化电感最大化,减少轻载运行时的初级电流。基于耗尽MOSFET...

    电源技术中的PI TOPSwitcha-JX电源转换IC空载功耗达到85mW

    在低输入功率水平下,高效率还可使适配器的空载功耗降至最低,增大待机模式下对系统的供电量,这一点特别适用于受到能效标准和规范约束的产品应用。  由于采用全新的多周期调制模式,使得电源在空载条件下具有出色...

Global site tag (gtag.js) - Google Analytics