默認適配者java
/** * 適配器模式(被適配對象,提供被適配的類或接口) * * @author Gu Yuanhua * @date 2019/4/20 */ // 適配者接口,能夠有各類實現標準 public interface Adaptee { default String request() { return "能夠完成客戶請求"; } } /** * 默認適配者 */ class AdapteeDefault implements Adaptee { // 單例模式結合Java 8新特性實現適配器和適配者默認實現,雙方均可以實現多個適配器和適配者任意匹配 private static class Inner { private static final AdapteeDefault INSTASNCE = new AdapteeDefault (); } private AdapteeDefault(){ if(Inner.INSTASNCE!=null){ throw new RuntimeException(); } } static Adaptee getInstance(){ return Inner.INSTASNCE; }
默認適配器設計模式
/** * 默認適配器 * @author Gu Yuanhua * @date 2019/4/20 */ public interface Adapter { Adaptee adaptee = AdapteeDefault.getInstance (); default String handleRequest() { return adaptee.request (); } }
擴展一號適配者ide
/** * 擴展一號適配者 * @author Gu Yuanhua * @date 2019/4/20 */ class AdapteeOne implements Adaptee{ @Override public String request() { return "能夠完成客戶One請求"; } }
擴展一號適配器測試
/** * 擴展一號適配器 * @author Gu Yuanhua * @date 2019/4/20 */ class AdapterOne implements Adapter{ @Override public String handleRequest() { return new AdapteeOne ().request (); } }
測試代碼設計
/** * @author Gu Yuanhua * @date 2019/4/20 */ @CompileStatic class AdapterTest { @Test void testAdapter() { /* 測試默認適配器和默認適配者 */ Adapter adapter = {} as Adapter assert adapter.handleRequest() == '能夠完成客戶請求' /* 測試擴展一號適配器和一號適配者 */ Adapter adapterOne = new AdapterOne() assert adapterOne.handleRequest() == '能夠完成客戶One請求' } }