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("执行业务方法");
}
}