packageedu.redwoods.adapter;importedu.redwoods.adapter.SocketAdapter;importedu.redwoods.adapter.SocketClassAdapterImpl;importedu.redwoods.adapter.SocketObjectAdapterImpl;importedu.redwoods.adapter.Volt;publicclassAdapterPatternTest{publicstaticvoidmain(String[]args){testClassAdapter();testObjectAdapter();}privatestaticvoidtestObjectAdapter(){SocketAdaptersockAdapter=newSocketObjectAdapterImpl();Voltv3=getVolt(sockAdapter,3);Voltv12=getVolt(sockAdapter,12);Voltv120=getVolt(sockAdapter,120);System.out.println("v3 volts using Object Adapter="+v3.getVolts());System.out.println("v12 volts using Object Adapter="+v12.getVolts());System.out.println("v120 volts using Object Adapter="+v120.getVolts());}privatestaticvoidtestClassAdapter(){SocketAdaptersockAdapter=newSocketClassAdapterImpl();Voltv3=getVolt(sockAdapter,3);Voltv12=getVolt(sockAdapter,12);Voltv120=getVolt(sockAdapter,120);System.out.println("v3 volts using Class Adapter="+v3.getVolts());System.out.println("v12 volts using Class Adapter="+v12.getVolts());System.out.println("v120 volts using Class Adapter="+v120.getVolts());}privatestaticVoltgetVolt(SocketAdaptersockAdapter,inti){switch(i){case3:returnsockAdapter.get3Volt();case12:returnsockAdapter.get12Volt();case120:returnsockAdapter.get120Volt();default:returnsockAdapter.get120Volt();}}}
packageedu.redwoods.adapter;//Using inheritance for adapter patternpublicclassSocketClassAdapterImplextendsSocketimplementsSocketAdapter{@OverridepublicVoltget120Volt(){returngetVolt();}@OverridepublicVoltget12Volt(){Voltv=getVolt();returnconvertVolt(v,10);}@OverridepublicVoltget3Volt(){Voltv=getVolt();returnconvertVolt(v,40);}privateVoltconvertVolt(Voltv,inti){returnnewVolt(v.getVolts()/i);}}
packageedu.redwoods.adapter;publicclassSocketObjectAdapterImplimplementsSocketAdapter{//Using Composition for adapter patternprivateSocketsock=newSocket();@OverridepublicVoltget120Volt(){returnsock.getVolt();}@OverridepublicVoltget12Volt(){Voltv=sock.getVolt();returnconvertVolt(v,10);}@OverridepublicVoltget3Volt(){Voltv=sock.getVolt();returnconvertVolt(v,40);}privateVoltconvertVolt(Voltv,inti){returnnewVolt(v.getVolts()/i);}}