zoukankan      html  css  js  c++  java
  • 适配器模式--想象一下转换插头

    理解适配器模式之前,可以先来看一下转换插头,两者的思想其实是一样的

    转换插头

    就是上图中的这个样子,当你出国旅行的时候,可能会用到这样一个东西,你的笔记本电脑直接插到国外的插座上是插不进去的,需要用一个转换插头,先让转换插头插到插座上,然后你的笔记本电脑插到转换插头上,这样就解决了问题

    而这个转换插头,就是我们今天要说的适配器模式,在现实中的一个实现

    适配器模式的定义:

    适配器模式(Adapter):将一个类的接口,转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的类,可以一起工作

    适配器模式的类图:

    适配器模式的应用场景:

    首先,咱们有一个现成的类,完成了一些特定的功能,现在要复用这个旧的类的功能,让它实现新的接口,我们定义一个新的类,让这个新的类实现新的接口,实现的方法就是调用旧的类

    这样就实现了适配器

    依照上边的类图,我们可以写出适配器模式的示例代码:

    public interface Target {
        void doSomething();
    }
    
    
    public class Adaptee {
    
        public void service(){
            System.out.println("我是原始的类");
        }
    }    
    
    
    public class Adapter implements Target {
        public Adaptee adaptee;
    
        @Override
        public void doSomething() {
            adaptee.service();
        }
    
        public Adapter(Adaptee adaptee) {
            this.adaptee = adaptee;
        }
    }
    
    
    
    public class AdapterClient {
        public static void main(String[] args) {
            Target target = new Adapter(new Adaptee());
            target.doSomething();
        }
    }
  • 相关阅读:
    struct{} //长篇更新
    channel //长篇更新
    切片 //长篇更新
    引用
    核心:数据篇
    ARM指令解析
    arm寄存器解析
    Java-Selenium,获取下拉框中的每个选项的值,并随机选择某个选项
    log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
    eclipse安装springsource-tool-suite遇到的问题及解决方案
  • 原文地址:https://www.cnblogs.com/jiaoyiping/p/9829482.html
Copyright © 2011-2022 走看看