您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
javase第二季学习笔记-适配器模式
发布时间:2017-07-10 14:35:27编辑:雪饮阅读()
适配器模式(Adapter):将一根类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
如下示例,电源a接口与电源b接口的接入方法一个为insert而另外一个为connect这样以来要使用开始工作时则需要对a接口和b接口分别用startA静态方法和startB静态方法。而不能兼容性的使用一个接口。startA和startB大多数代码都相同,而仅仅只是对于接口a和接口b的调用不同,这样兼容性肯定是不好的。
示例代码:
public class NewKeywordDemo
{
public static void main(String[] args){
PowerA powerA=new PowerAIPl();
startA(powerA);
PowerB powerB=new PowerBImpl();
startB(powerB);
}
//开始工作
public static void startA(PowerA powerA){
/*重复的代码*/
powerA.insert();
}
public static void startB(PowerB powerB){
/*重复的代码*/
powerB.connect();
}
}
//电源a接口
interface PowerA
{
public void insert();
}
class PowerAIPl implements PowerA
{
public void insert(){
System.out.println("电源a接口插入");
}
}
//电源b接口
interface PowerB
{
public void connect();
}
class PowerBImpl implements PowerB
{
public void connect(){
System.out.println("电源b已连接,开始工作");
}
}
使用适配器后,就不用写多个start函数了,只需要一个start函数,只是在不兼容接口a的对象使用时先通过适配器转换一下,示例代码如下:
public class NewKeywordDemo
{
public static void main(String[] args){
PowerA powerA=new PowerAIPl();
start(powerA);
PowerB powerB=new PowerBImpl();
//使用适配器实现兼容
PowerAAdapter pa=new PowerAAdapter(powerB);
start(pa);
}
//开始工作
public static void start(PowerA powerA){
/*重复的代码*/
powerA.insert();
}
}
//适配器类
class PowerAAdapter implements PowerA
{
private PowerB powerB;//要进行适配的接口
public PowerAAdapter(PowerB powerB){
this.powerB=powerB;
}
public void insert(){
powerB.connect();
}
}
//电源a接口
interface PowerA
{
public void insert();
}
class PowerAIPl implements PowerA
{
public void insert(){
System.out.println("电源a接口插入");
}
}
//电源b接口
interface PowerB
{
public void connect();
}
class PowerBImpl implements PowerB
{
public void connect(){
System.out.println("电源b已连接,开始工作");
}
}
关键字词:javase,适配器模式