zoukankan      html  css  js  c++  java
  • adapter 适配器

    定义:

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

    示例:

    比如,水货的手机充电器插头是欧美标准(大头插座),中国的插座是小的,如果要是充电器工作,必须有个转换插头(小插座不具备给大插头充电的功能),其功能和adapater相同。

    其中,大充电器是目标类,小插座是被适配的对象,转换插头是适配器。

    使用场合:

    当需要已知类A和类B的功能,且类A和类B功能不完全满足要求,需要修改,但又不能修改A,B源码时,可将A,B类以继承和组合的方式引入适配器类中,然后直接使用适配器类来完成想要的功能。

    public class test7 {
    public static void main(String[] args) {
    //client 客户端
    //使用适配器类给大插头充电
    BigPlug bp=new SmallSocketAdapter();
    bp.getElec();
    }
    }

    //target
    //目标类,大插头需要充电
    class BigPlug{
    void getElec(){
    System.out.println("我在大插座上充电");
    }
    }

    //adaptee 被适配的对象
    //想要使用小插座这个类的充电的方法,但此方法的参数不符合要求,因此需要适配
    class SmallSocket{
    void supplyElecToSmallPlug(SmallPlug smallPlug){
    System.out.println("我是小插座,小插头可以插上,充电中。。。");
    }
    }
    class BigSocket{}
    class SmallPlug{}

    //adapter 适配器
    //通过它将大插头转换成小插头,以在小插座上充电
    class SmallSocketAdapter extends BigPlug{
    SmallSocket ss=new SmallSocket();
    void getElec(){
    SmallPlug sp=BigPlugToSmallPlug(this);
    ss.supplyElecToSmallPlug(sp);
    }
    private SmallPlug BigPlugToSmallPlug(BigPlug bigPlug) {
    //TODO 将转换为小插头
    return null;
    }
    }



  • 相关阅读:
    d3js 添加数据
    d3js 画布 概念
    Python中的 socket示例
    swift学习笔记
    加密原理介绍,代码实现DES、AES、RSA、Base64、MD5
    socket编程中客户端常用函数
    WBS 与 甘特图
    C/C++ 数据结构之算法
    Linux集群服务 LVS
    Linux内核架构与底层--读书笔记
  • 原文地址:https://www.cnblogs.com/myparamita/p/2206488.html
Copyright © 2011-2022 走看看