【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();
			
		}
}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值