适配器模式介绍适配器模式用作两个不兼容接口之间的桥梁。这种类型的设计模式是一种结构模式,结合了两个独立接口的功能。此模式涉及负责加入独立或不兼容的接口功能的单个类。Classmode要适配classTV和classWire//要适配的class:TVpublicclassTV{//TV系列需要电源适配器,它可以供电,poweronpublicvoidopen(IPowerAdapteriPowerAdapter){//open电视需要电,需要接电线,需要电源适配器iPowerAdapter.power();}}//适配连接类:wirepublicclassWire{publicvoidsupply(){System.out.println("Poweron...");}}PoweradapterinterfaceIPowerAdapter//电源适配器接口publicinterfaceIPowerAdapter{//电源voidpower();}线材和电视适配器类TVPowerAdapter(通过继承)//真正的Adapter,一端接电线,而另一端接电视publicclassTVPowerAdapterextendsWireimplementsIPowerAdapter{@Overridepublicvoidpower(){super.supply();//有电源}}测试类publicclassTest{publicstaticvoidmain(String[]args){TVtv=newTV();//TVTVPowerAdaptertvPowerAdapter=newTVPowerAdapter();//电源适配器Wirewire=newWire();//wiretv.open(tvPowerAdapter);/***输出结果:*Poweron...*/}}测试结果Poweron...组合模式(推荐)待适配ClassTV和ClassWire//待适配Class:TVpublicclassTV{//电视剧需要电源适配器供电和开机publicvoidopen(IPowerAdapteriPowerAdapter){//打开电视,需要通电,需要接电线,需要电源适配器iPowerAdapter.power();}}//要适配访问的类:wirepublicclassWire{publicvoidsupply(){System.out.println("Poweron...");}}poweradapterinterfaceIPowerAdapter//poweradapterinterfacepublicinterfaceIPowerAdapter{//powersupplyvoidpower();}wireandTVadapterClassTVPowerAdapter(throughcombination)//一个真正的适配器,一端接电线,和另一端连接到电视publicclassTVPowerAdapterimplementsIPowerAdapter{privateWirewire;publicTVPowerAdapter(Wirewire){this.wire=wire;}@Overridepublicvoidpower(){wire.supply();//有电}}TestclasspublicclassTest{publicstaticvoidmain(String[]args){TVtv=newTV();//TVWirewire=newWire();//连接TVPowerAdaptertvPowerAdapter=newTVPowerAdapter(wire);//电源适配器tv.open(tvPowerAdapter);/***输出结果:*Poweron...*/}}测试结果Poweron...
