Java 设计模式(4)适配器模式

前言

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

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

  战得过东方不败

  {

    三十年功力;

    吸星大法;

    独孤九剑;

  }

  令狐冲

  {

    三十年功力;

  }

  而现在我们需要的是

  增强版令狐冲

  {

    三十年功力;

    吸星大法;

    独孤九剑;

  }

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

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

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

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

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

  

实现

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

//Adapter       

class 增强版令狐冲  extends 令狐冲 implements 胜利
{
     三十年功底();
     独孤九剑();
     吸星大法();      
}

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

原文地址:https://www.cnblogs.com/maydow/p/4833925.html