适配器模式

来源:互联网 发布:我的心情无人知 编辑:程序博客网 时间:2024/06/05 19:09

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
原创粉丝点击