adapter 适配器模式 -- java模式
- 适配器模式1 基于继承方式
- 适配器模式2 基于对象组合
- 适配器模式3 原始适配器
适配器模式1 基于继承方式
Adaptee.java
package com.mark.pattern.adapter; public class Adaptee { public void method2() { System.out.println("目标方法"); } }
Adapter.java
package com.mark.pattern.adapter; /** * 类适配器 * 基于继承方式 */ public class Adapter extends Adaptee implements Target{ @Override public void method1() { this.method2(); } }
Target.java
package com.mark.pattern.adapter; public interface Target { public void method1(); }
Client.java
package com.mark.pattern.adapter; public class Client { public static void main(String[] args) { Target target = new Adapter(); target.method1(); } }
适配器模式2 基于对象组合
Adaptee.java
package com.mark.pattern.adapter2; public class Adaptee { public void method2() { System.out.println("执行方法"); } }
Adapter.java
package com.mark.pattern.adapter2; /** * 适配器模式 * 基于对象组合 */ public class Adapter implements Target{ private Adaptee adaptee; public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } public void method1() { adaptee.method2(); } }
Target.java
package com.mark.pattern.adapter2; public interface Target { public void method1(); }
Client.java
package com.mark.pattern.adapter2; public class Client { public static void main(String[] args) { Target target = new Adapter(new Adaptee()); target.method1(); } }
适配器模式3 原始适配器
AbstractService.java
package com.mark.pattern.defaultAdapter; public interface AbstractService { public void service1(); public void service2(); public void service3(); }
ServiceAdapater.java
package com.mark.pattern.defaultAdapter; public class ServiceAdapater implements AbstractService { @Override public void service1() { } @Override public void service2() { } @Override public void service3() { } }
ConcreteService.java
package com.mark.pattern.defaultAdapter; /** * 原始适配器模式 */ public class ConcreteService extends ServiceAdapater{ @Override public void service1() { System.out.println("执行业务方法"); } }