zoukankan      html  css  js  c++  java
  • 设计模式之适配器模式

    简介

    适配器类实现目标接口,在接口方法中调用被适配类的方法。 客户端直接调用适配器对象。

    使用场景

    1. 当客户端需要的接口跟现有类提供的接口不一致,但又想复用该类,就可以使用适配器,给客户端提供它需要的接口。
    2. 当需要将多个不同的类组合起来完成一个功能。

    类图

    示例代码

    客户端期望的接口:

    1 public interface Target {
    2     public void doSomething();
    3 }

    需要适配的类:

    1 public class Adaptee1 {
    2 
    3     public void doSomething1(){
    4         System.out.println("I am Adptee1");
    5     }
    6 }
    1 public class Adaptee2 {
    2     public void doSomething2(){
    3         System.out.println("I am Adptee2");
    4     }
    5 }

    适配器类:

     1 public class Adapter implements Target {
     2     private Adaptee1 adaptee1;
     3     private Adaptee2 adaptee2;
     4 
     5     public Adapter(Adaptee1 adaptee1, Adaptee2 adaptee2) {
     6         this.adaptee1 = adaptee1;
     7         this.adaptee2 = adaptee2;
     8     }
     9 
    10     @Override
    11     public void doSomething() {
    12         adaptee1.doSomething1();
    13         adaptee2.doSomething2();
    14     }
    15 
    16 }

    客户端:

    1 public class Client {
    2 
    3     public static void main(String[] args) {
    4         Target target = new Adapter(new Adaptee1(), new Adaptee2());
    5         target.doSomething();
    6     }
    7 
    8 }

    运行结果:

    I am Adptee1
    I am Adptee2
  • 相关阅读:
    WebStorm 2017.1.2 汉化破解
    gulp实时刷新页面
    图片转base64
    swiper使用案例一
    js生成GUID
    css实现0.5像素
    mac上搭建appium+IOS自动化测试环境(二)
    6. 使用antd pro构建web页面
    5. 使用Flask蓝图(blueprint)
    4. 为HelloWorld添加日志
  • 原文地址:https://www.cnblogs.com/longzhaoyu/p/4123832.html
Copyright © 2011-2022 走看看