美文网首页
设计模式——适配器模式

设计模式——适配器模式

作者: 写一本2000000的书 | 来源:发表于2019-09-30 02:42 被阅读0次

适配器模式:是把一个类的接口变换成客户端所能接受的另一种接口,从而使两个接口不匹配而无法在一起工作的两个类能够在一起工作。

target(目标接口):所要转换的所期待的接口
Adaptee(源角色):需要适配的类
Adapter(适配器):将源角色适配成目标接口,一般持有源接口的引用(或者继承源接口),且实现目标接口。

适配器模式.jpg

示例:利用转接口将PS/2接口的鼠标连上USB,接上电脑

/**
 * 
 * @author apple
 *  PS2Mouse 相当于Apaptee, 被适配器类,有特殊需求
 *  
 */
public class PS2Mouse {
    
    void hasPS2() {
        System.out.println("连接上电脑");
    }
}

/**
 * 
 * @author apple
 * 
 *  Translator 转化器 Adapter , 转化接口, 拿到原有接口,加以修改  
 */
public class Translator extends PS2Mouse implements IUSB {

    @Override
    public void hasUSB() {
        // TODO Auto-generated method stub
        hasPS2();
        System.out.println("将 ps2 转换为 usb 接口");
        
    }

}

/**
 * 
 * @author apple
 * 
 * IUSB 相当于 Tagart,目标接口
 */
public interface IUSB {
    
    void hasUSB();
}

public class Client {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Translator translator = new Translator(new PS2Mouse());
        translator.hasUSB();
        
    }

}

相关文章

  • 简说设计模式之适配器模式

    前言:对于设计模式基础概念可以去看[简说设计模式之设计模式概述] 一、什么是适配器模式 适配器模式(Adapter...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 最常用的设计模式---适配器模式(C++实现)

    适配器模式属于结构型的设计模式,它是结构型设计模式之首(用的最多的结构型设计模式)。 适配器设计模式也并不复杂,适...

  • iOS设计模式(5)策略模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(6)模板模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(7)建造者模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(4)抽象工厂模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(1)简单工厂模式

    设计模式系列文章 《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器模式》《iOS设计模式(4)抽象工厂...

  • iOS设计模式(2)工厂模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(3)适配器模式》《iOS设计模式(4)抽象...

  • iOS设计模式(8)外观模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

网友评论

      本文标题:设计模式——适配器模式

      本文链接:https://www.haomeiwen.com/subject/ndssyctx.html