java适配器模式

定义:将一个类的接口转换成用户期望的另一个接口

使原本接口不兼容的类可以一起工作

结构型

应用场景:

已经存在的类,他的方法和需求不匹配时(方法结果相同或相似)

功能类似而接口不相同的情况下的解决方案

优点:

能提高类的透明性和复用,现有的类复用但不需要改变

目标类和适配器 类解耦,提高程序扩展性

符合开闭原则

 类:

1
2
3
4
5
6
7
public class Adapteee {
 
    public  void adapteeRequest(){
        System.out.println("被适配着的方法");
         
    }
}public interface Target {<br>    void request();<br>}public class ConcreteTarget implements Target {<br><br>    public void request() {<br>        System.out.println("目标方法");<br>    }<br>}public class Adapter  extends Adapteee implements Target{<br>    public void request() {<br>        super.adapteeRequest();<br>    }<br>}public class Test {<br>    public static void main(String[] args) {<br>        Target target=new ConcreteTarget();<br><br>        target.request();<br><br>        Target adapterTarget=new Adapter();<br>        adapterTarget.request();<br>    }<br>}

  对象:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Adapteee {
 
    public  void adapteeRequest(){
 
        System.out.println("被适配着的方法");
    }
}
public class ConcreteTarget implements Target {
 
    public void request() {
        System.out.println("目标方法");
    }
}
public class Adapter implements  Target{
    private  Adapteee adapteee=new Adapteee();
 
    public void request() {
        adapteee.adapteeRequest();
    }
}public class Test {<br>    public static void main(String[] args) {<br>       <br>        Target target=new ConcreteTarget();<br><br>        target.request();<br><br>        Target adapterTarget=new Adapter();<br>        adapterTarget.request();<br>    }<br>}

  实际应用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class AC220 {
    public  int outputAC220v(){
        int output=220;
        System.out.println("输出交流电"+output+"V");
        return output;
    }
}
public interface DC5 {
    int outputDC5V();
}
public class PowerAdapter implements   DC5{
 
    private  AC220 ac220=new AC220();
    public int outputDC5V() {
        int adapterInput=ac220.outputAC220v();
        int adapterOutput=adapterInput/44;
        System.out.println("使用PowerAdapter输入AC:"+adapterInput+"V"+"输出DC:"+adapterOutput+"V");
        return adapterOutput;
    }
}
public class Test {
    public static void main(String[] args) {
        DC5 dc5=new PowerAdapter();
        dc5.outputDC5V();
        
    }
}

  

posted @   石shi  阅读(183)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示