前言
假如当年去打东方不败的只有令狐冲一个人,那么他就得有三十年的武学功底,外加上吸星大法和独孤九剑才能够战得过。而现在令狐冲只有了任我行三十年的武学功底,请问怎么样才能够战过东方不败?
把这个问题抽象成下面几个对象。
战得过东方不败
{
三十年功力;
吸星大法;
独孤九剑;
}
令狐冲
{
三十年功力;
}
而现在我们需要的是
增强版令狐冲
{
三十年功力;
吸星大法;
独孤九剑;
}
采用适配器模式就能够解决这个问题。
适配器模式中有三个角色:
1)目标 Target 想要实现的目标,上面就是战得过东方不败这个目标,一般用接口实现
2)需要适配的类 Adaptee 在上面就是只有三十年功底的令狐冲啦
3)适配器 Adapter 这个就是我们希望得到的增强版令狐冲。
实现
interface 胜利 //目标 { 三十年功底(); 独孤九剑(); 吸星大法(); } class 令狐冲 //Adaptee { 三十年动力(); } //Adapter class 增强版令狐冲 extends 令狐冲 implements 胜利 { 三十年功底(); 独孤九剑(); 吸星大法(); }
简单来说:继承要适配的类并实现目标的方法。