设计模式之Adapter(适配器模式)

所谓适配器模式就是将一个类的接口,转换成客户期望啊的另一个接口,使原本不兼容的类可合作无间。

[img]http://dl.iteye.com/upload/attachment/364821/a9531670-f29c-32a9-a202-e88438b02949.jpg[/img]

例如这样的一个场景:在一个Amd的主板上原本只能插着Amd的CPU。
用代码表示就是这样的:

package com.unis.adpater;

/**
* AMD主板类
* @author Administrator
*
*/
public class AmdBoard {

private Amd amd;

public AmdBoard(Amd amd) {
this.amd = amd;
}

public void start(){
System.out.println("开机");
amd.ac();
}

}

package com.unis.adpater;

/**
* AMD的CPU
* @author Administrator
*
*/
public interface Amd {
void ac();
}


这样我在使用的时候AMD的主板只能插上AMD的CPU。

而这个时候我有一块Intel的CPU。

package com.unis.adpater;
/**
* Intel的CPU
* @author Administrator
*
*/
public interface Intel {

void power();

}

这个时候我想在我AMD的主板上插上Intel的CPU则就插不上。
如果想在AMD的主板上可以插上Intel的CPU我们则需要一个适配器。

package com.unis.adpater;
/**
* 适配器
* @author Administrator
*
*/
public class Intel2Amd implements Amd {

Intel i ;

public Intel2Amd(Intel i) {
this.i= i;
}

@Override
public void ac() {
i.power();
}

}


这个时候我有一款I7的Intel的CPU,则就可以插在AMD的主板上工作了

package com.unis.adpater;
/**
* I7 CPU
* @author Administrator
*
*/
public class I7 implements Intel {

@Override
public void power() {
System.out.println("I7 CPU 工作了");
}

}

package com.unis.adpater;

public class Test {

public static void main(String[] args) {
Intel i7 = new I7();
Intel2Amd i2a = new Intel2Amd(i7);
AmdBoard ab = new AmdBoard(i2a);
//让主板工作
ab.start();

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值