类的适配器模式:
步骤一:建立一个接口 Targetable
public interface Targetable {
public void method1();
public void method2();
}
步骤二:建立一个类Source(其中方法与接口中的方法相同)
public class Source {
public void method1() {
System.out.println("我是source中的方法1");
}
}
步骤三:建立一个适配器类实现继承Source类 ,同时实现接口Targetable,达到方法的适配。
public class Adapter extends Source implements Targetable{
@Override
public void method2() {
System.out.println("我是方法2");
}
}
步骤四:进行测试
public class Test {
public static void main(String[] args) {
Targetable target=new Adapter();
target.method1();
target.method2();
}
}
对象的适配器模式
步骤一:建立一个接口Targetable (同上)
步骤二:建立一个类Source(其中方法与接口中的方法相同)(同上)
步骤三:建立一个对象适配器
public class Adapter implements Targetable{
private Source source;
public Adapter(Source source) {
super();
this.source=source;
}
@Override
public void method1() {
source.method1();
}
@Override
public void method2() {
System.out.println("我是方法二");
}
}
步骤四:测试
public class Test {
public static void main(String[] args) {
Source source=new Source();
Targetable target=new Adapter(source);
target.method1();
target.method2();
}
}
接口适配器
步骤一:建立一个接口Sourceable
//接口中定义了四个方法
public interface Sourceable {
public void method1();
public void method2();
public void method3();
public void method4();
}
步骤二:建立 类Source1 Source2( 其中存在有方法与接口中的方法相同)
public class Source1 extends Adapter{
@Override
public void method1() {
System.out.println("这是需要的方法1");
}
}
public class Source2 extends Adapter{
@Override
public void method2() {
System.out.println("这是需要的方法2");
}
}
步骤三:建立一个接口适配器
public abstract class Adapter implements Sourceable{
@Override
public void method1() {
System.out.println("我是方法1");
}
@Override
public void method2() {
System.out.println("我是方法2");
}
@Override
public void method3() {
System.out.println("我是方法3");
}
@Override
public void method4() {
System.out.println("我是方法4");
}
}
步骤四:测试
public class Test {
public static void main(String[] args) {
Sourceable source1=new Source1();
Sourceable source2=new Source2();
source1.method1();
source1.method2();
System.out.println("-----------");
source2.method1();
source2.method2();
}
}