`
chendw_hz
  • 浏览: 11286 次
  • 性别: 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,当源接口无法修改时。我们需要适配角色来达到我们需要的接口的目的。

 

分享到:
评论

相关推荐

    java 设计模式之适配器模式的详解

    适配器模式也称为变压器模式或包装模式,包括装饰模式。 优点 1. 更好的复用性:适配器模式可以使得原本不能一起工作的类可以一起工作,从而提高了代码的复用性。 2. 扩展性:适配器模式可以使得系统更加灵活,...

    设计模式,软件开发

    - **适配器模式的原理**:适配器模式的核心是创建一个新的类(适配器),该类包装了现有类的实例,对外提供一个符合需求的新接口。这种模式尤其适用于当一个已有的类不能满足新的接口需求,但又不想修改原有类的情况...

    连续电流模式反激变压器的设计.pdf

    本文档主要介绍了连续电流模式(CCM)下的反激变压器设计方法,及其多路输出电流有效值的计算。 首先,反激变换器的工作原理包括了两个基本工作状态:当开关管Q1导通时,能量开始在变压器初级侧储存;而当Q1截止时...

    CCM+QR+PSR变压器计算表格.rar

    例如,对于电源适配器、逆变器或者开关电源等产品,设计人员可以通过调整不同的工作模式,找到最佳的性能和成本平衡点。 总的来说,《CCM+QR+PSR变压器计算表格》是一个强大的辅助工具,它可以帮助工程师快速评估...

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

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

    经典设计模式课件及案例代码

    最后,变压器模式可能是指装饰者模式,06变压器模式Ok.ppt将讲解如何通过附加新的行为来增强对象的功能,而不会修改其原有的结构。 单态模式(04单态模式 Ok.ppt)是另一个创建型模式,保证一个类只有一个实例,并...

    超薄型65_W笔记本适配器_参考设计

    笔记本适配器是一种将交流电转换为直流电的电源设备,主要用于为笔记本电脑等便携式电子设备供电。本篇参考设计针对一款超薄型65瓦(W)的笔记本适配器,详细介绍了该适配器的原理和构造,以下是相关知识点的详细...

    参考资料-12V1A电源适配器的电路原理图.zip

    首先,电源适配器通常由以下几个主要部分组成:输入滤波器、整流桥、滤波电容、开关电源控制器、变压器、反馈电路和输出调整电路。 1. 输入滤波器:这是电源适配器的第一个环节,它由电感器和电容器组成,主要用于...

    安森美半导体推出用于高能效紧凑型适配器方案的固定频率电流模式控制器.pdf

    该控制器采用专有的软跳周期(Soft-Skip)模式,在跳周期模式期间逐渐增加峰值电流,降低可听噪声的风险,节省更多的元器件,并简化变压器的设计和制造。 二、高能效紧凑型适配器方案 该控制器结合跳周期和频率反...

    Java设计模式.pdf

    实例形式的变压器模式是通过组合的方式来实现的,即创建一个新的类作为适配器,该类持有`Adaptee`的一个实例,并通过委托的方式调用`Adaptee`的方法来实现`Target`接口。 **6.1 示例代码** 以下是一个简单的实例...

    RCC变压器设计.zip

    8. **RCC变压器的应用**:RCC变压器广泛应用于电源适配器、充电器、LED驱动器、工业电源等众多领域,其设计灵活性和高效性能使其在现代电子设备中占有重要地位。 9. **Excel工具**:提供的"RCC变压器设计.xls"可能...

    Java设计模式

    变压器模式的命名灵感来源于现实世界中的“变压器”,它能将高电压转换为低电压,使得不同电压标准的电器能够在同一环境下使用。在软件领域,这种模式同样起到了“适配”作用,确保了不同接口之间的兼容性。 ##### ...

    Java的23种设计模式.pdf

    6. 适配器模式(变压器模式):将不同接口的对象转换为统一的接口,使不兼容的类能协同工作。适配器模式常用于旧代码的接口与新代码的集成。 7. 桥接模式:分离抽象接口和其实现,使得两者可以独立变化,增强了抽象...

    JAVA设计模式

    在软件设计中,变压器模式通过创建一个适配器类,将一个类的接口转换为客户期望的另一个接口,从而使得原本不兼容的类能够一起工作。 ##### 类形式的变压器模式 类形式的变压器模式通过继承关系来实现。它包含三个...

    连续式变压器设计.pdf

    ### 连续电流模式反激变压器设计精要 #### 核心知识点概览 1. **反激式变换器(Flyback Converter)的工作原理** - **电路结构**:反激变换器因其简单的电路结构和较低的成本,在小功率电源及电源适配器中广泛...

    资料-RCC设计 反激式变压器计算 2.zip

    4. **计算变压器的磁通密度**:根据输入输出电压和工作频率,计算出变压器在连续导通模式(CCM)或断续导通模式(DCM)下运行时所需的磁通密度。磁通密度不能超过磁芯的饱和值,否则会降低效率并可能导致磁芯损坏。 ...

    实现高能效、低待机能耗及功率因数校正的电源和适配器解决方案.pdf

    5. 60W准谐振电源适配器,它具有谷底锁定功能,防止在轻载条件下的变压器可听噪声,而且平均能效同样超过87%。 6. 48W通用输入打印机电源适配器,它在24V反激式电源适配器中实现了30W的稳态和48W的瞬态能力,同时...

    CCM反激变压器设计

    尤其在输入电压范围较宽的情况下,变压器的工作模式会在连续电流模式(Continuous Current Mode, CCM)和不连续电流模式(Discontinuous Current Mode, DCM)之间变化。传统设计方法通常基于DCM模式或临界模式进行...

    单端反激电源变压器的设计

    - **电流不连续模式**:在此模式下,每个周期内变压器都会将其存储的能量完全释放给次级回路。这意味着在开关管关断期间,次级回路中的电流会降至零。 - **电流连续模式**:与此相反,如果在开关管再次导通前次级...

Global site tag (gtag.js) - Google Analytics