您的位置:首页 > 其它

设计模式8 - 适配器模式【Adapter Pattern】

2018-02-01 19:21 459 查看

适配器模式

定义:

将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。可分为类适配器模式对象适配器模式接口适配器模式

类适配器模式 (把110V电源转为220V电源):

/**
* 110V电源
*/
public interface Power110V {

void work110V();
}

/**
* 220V 电源
*/
public interface Power220V {

void work220V();
}

/**
* 220V电源实现类
*/
public class Power220VImpl implements Power220V {

@Override
public void work220V() {
System.out.println("power 220V is working......");
}
}

/**
* 适配器:把110V电源转为220V电源
*/
public class PowerAdapter extends Power220VImpl implements Power110V {

@Override
public void work110V() {
work220V();//TODO 适配
}
}


对象适配器模式:

/**
* 110V电源
*/
public interface Power110V {

void work110V();
}

/**
* 220V 电源
*/
public interface Power220V {

void work220V();
}

/**
* 自己领悟
*/
public class PowerAdapter  implements Power110V {
private Power220V mPower220V;

public PowerAdapter(Power220V power220V) {
mPower220V = power220V;
}

@Override
public void work110V() {
mPower220V.work220V();//TODO 适配
}
}


接口适配器模式:

/**
* 多功能电源
*/
public interface MutiplePower {
void work12V();

void work36V();

void work110V();

void work220V();

void work380V();
}

/**
* 多功能电源实现类
*/
public abstract class MutiplePowerImp implements MutiplePower {

@Override
public void work12V() {
}

@Override
public void work36V() {
}

@Override
public void work110V() {
}

@Override
public void work220V() {
}

@Override
public void work380V() {
}
}

/**
* 但是我只想要220V电源和380V电源
*/
public class CustomPower extends MutiplePowerImp {
@Override
public void work220V() {
super.work220V();
}

@Override
public void work380V() {
super.work380V();
}
}


总结:

至于应用场景自己根据实际情况选择吧,反正说多了也不会去记。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: