package tech.selinux.design.pattern.structural.adapter.classadapter;
public class Adaptee {
public void adapteeRequest() {
System.out.println("被适配者的方法");
}
}
package tech.selinux.design.pattern.structural.adapter.classadapter;
public interface Target {
void request();
}
package tech.selinux.design.pattern.structural.adapter.classadapter;
public class ConcreteTarget implements Target {
@Override
public void request() {
System.out.println("concreteTarget目标方法");
}
}
package tech.selinux.design.pattern.structural.adapter.classadapter;
public class Adapter extends Adaptee implements Target {
@Override
public void request() {
// ...
super.adapteeRequest();
// ...
}
}
package tech.selinux.design.pattern.structural.adapter.classadapter;
public class Test {
public static void main(String[] args) {
Target target = new ConcreteTarget();
target.request();
Target adapterTarget = new Adapter();
adapterTarget.request();
}
}
package tech.selinux.design.pattern.structural.adapter.objectadapter;
public class Adaptee {
public void adapteeRequest() {
System.out.println("被适配者的方法");
}
}
package tech.selinux.design.pattern.structural.adapter.objectadapter;
public interface Target {
void request();
}
package tech.selinux.design.pattern.structural.adapter.objectadapter;
public class ConcreteTarget implements Target {
@Override
public void request() {
System.out.println("concreteTarget目标方法");
}
}
package tech.selinux.design.pattern.structural.adapter.objectadapter;
public class Adapter implements Target {
private Adaptee adaptee = new Adaptee();
@Override
public void request() {
// ...
adaptee.adapteeRequest();
// ...
}
}
package tech.selinux.design.pattern.structural.adapter.objectadapter;
public class Test {
public static void main(String[] args) {
Target target = new ConcreteTarget();
target.request();
Target adapterTarget = new Adapter();
adapterTarget.request();
}
}