【java设计模式】适配器模式


类的适配器模式:

步骤一:建立一个接口 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();
			
		}
}








猜你喜欢

转载自blog.csdn.net/sinat_35821285/article/details/80104518