默认适配者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请求' } }