zoukankan      html  css  js  c++  java
  • Java 设计模式(4)适配器模式

    前言

       假如当年去打东方不败的只有令狐冲一个人,那么他就得有三十年的武学功底,外加上吸星大法和独孤九剑才能够战得过。而现在令狐冲只有了任我行三十年的武学功底,请问怎么样才能够战过东方不败?

      把这个问题抽象成下面几个对象。

      战得过东方不败

      {

        三十年功力;

        吸星大法;

        独孤九剑;

      }

      令狐冲

      {

        三十年功力;

      }

      而现在我们需要的是

      增强版令狐冲

      {

        三十年功力;

        吸星大法;

        独孤九剑;

      }

      采用适配器模式就能够解决这个问题。

      适配器模式中有三个角色:

      1)目标  Target   想要实现的目标,上面就是战得过东方不败这个目标,一般用接口实现

      2)需要适配的类 Adaptee  在上面就是只有三十年功底的令狐冲啦

      3)适配器 Adapter  这个就是我们希望得到的增强版令狐冲。

      

    实现

    interface 胜利               //目标
    {
         三十年功底();
         独孤九剑();
         吸星大法();          
    }
    class 令狐冲                 //Adaptee
    {
         三十年动力();  
    }
    
    //Adapter       
    
    class 增强版令狐冲  extends 令狐冲 implements 胜利
    {
         三十年功底();
         独孤九剑();
         吸星大法();      
    }

      简单来说:继承要适配的类并实现目标的方法。

  • 相关阅读:
    《软件架构师的12项修炼》阅读笔记01
    《架构即未来》阅读笔记03
    《一线架构师时间指南》-Refined Architecture阶段
    《架构即未来》阅读笔记02
    《架构即未来》阅读笔记01
    大三下第四周总结
    RPA自动化
    在shell中使用Flask
    用蓝图实现模块化应用
    请求上下文
  • 原文地址:https://www.cnblogs.com/maydow/p/4833925.html
Copyright © 2011-2022 走看看