适配器模式

1.Client端的访问时面向接口的。这样能使程序应对不同的实现。

2.假设Client端使用一个vehicle,意思是交通工具。Client端调用该接口的run()。实现交通工具的“跑”功能。

3.现在有个Car类。该类和vehicle没有关系。但是也提供了run()方法,用于“小汽车跑起来”。


现在要将Car作为vehicle的一个“实现类”。实际上不上真正的实现,而是由一个“中介”,作用是能提供vehicle的实例,同时包含Car。

现在就要这样做:


<pre name="code" class="java">class CarAdapter Implements vehicle{//提供vehicle的实例
	private Car car;
	public void run(){
		//小汽车跑
		car.run();
		//还可以控制小汽车跑的其他方面
	}
	public CarAdapter(Car c){
	car  = c;//提供个构造方法来初始化。
	}
}.


这样在Client端就可以保持一个vehicle访问形式不变,使用并控制Car提供的功能。
类似这样:

 

//前面的一些代码,一直在使用vehicle做事情
vehicle=new CarAdapter(new Car());//现在要用一个Car做些事情,但是不能“整容”,否则后面的代码不认识
//仍然使用vehicle做些事情


小结:

适配是为了转型,转型就要用到继承,内部封装“被转型”类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值