时间: 2020-09-3|54次围观|0 条评论


场景

美国交流电插头(2头)无法插到欧洲壁式插座(3孔)

解决方法是在中间环节用适配器转化下搞定。

设计模式——适配器模式插图

意图

将一个借口转化成另一个接口

举例

设计模式——适配器模式插图1

代码

#

package designpattern.adapter;public interface AmericanPlug {    public void desc();    public void func();}

#

package designpattern.adapter;public interface EuropePlug {    public void desc();    public void func();}

 

##

package designpattern.adapter;public class AmericanPlugImpl implements AmericanPlug{    public void desc() {        System.out.println("American");    }    public void func()  {        System.out.println("American two plug");    }}

##

package designpattern.adapter;public class EuropePlugImpl implements EuropePlug{    public void desc() {        System.out.println("EuropePlug");    }    public void func() {        System.out.println("EuropePlug three plug");    }}

 

###

package designpattern.adapter;public class AmericanAdapter implements EuropePlug{    AmericanPlug americanPlug;    public AmericanAdapter(AmericanPlug americanPlug) {        this.americanPlug = americanPlug;    }    public void desc() {        americanPlug.desc();    }    public void func() {        System.out.println("Before adapter");        americanPlug.func();        System.out.println("After adapter");    }}

测试

package designpattern.adapter;public class Test {    public static void main(String[] args) {        System.out.println("AmericanPlug---------");        AmericanPlug americanPlug = new AmericanPlugImpl();        americanPlug.desc();        americanPlug.func();        System.out.println("\nEuropePlug---------");        EuropePlug europePlug = new EuropePlugImpl();        europePlug.desc();        europePlug.func();        System.out.println("\nAmericanAdapter---------");        AmericanAdapter americanAdapter = new AmericanAdapter(americanPlug);        americanAdapter.desc();        americanAdapter.func();    }}

输出

AmericanPlug---------AmericanAmerican two plugEuropePlug---------EuropePlugEuropePlug three plugAmericanAdapter---------AmericanBefore adapterAmerican two plugAfter adapterProcess finished with exit code 0

  

 

文章转载于:https://www.cnblogs.com/kaituorensheng/p/11186502.html

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《设计模式——适配器模式
   

还没有人抢沙发呢~