Java设计模式之适配器模式

Java23种设计模式

将不符合要求的对象适配成符合要求对象的一种模式。

适配器模式不是在设计项目时候考虑的,而是解决项目运行的问题时候添加。

需求:现有一家苹果店和一家香蕉店,用户需要到苹果柜台购买苹果,香蕉柜台购买香蕉,现在需要整合成一个柜台,既可以卖苹果又可以买香蕉。
  1. 创建水果接口,里面有购买方法
public interface Fruit {
    void buy();
}
  1. 创建苹果类和香蕉类
public class Apple implements Fruit{
    @Override
    public void buy() {
        System.out.print("购买了苹果!\n");
    }
}
public class Banana implements Fruit{
    @Override
    public void buy() {
        System.out.print("购买了香蕉!\n");
    }
}
  1. 创建适配器,一个购买动作可以同时购买苹果和香蕉
public class FruitAdapter {
    public static final String APPLE = "apple";
    public static final String BANANA = "banana";
    private Fruit fruit;
    public void buyFruit(String name){
        if(name.equals(APPLE)){
            fruit = new Apple();
            fruit.buy();
        }else if(name.equals(BANANA)){
            fruit = new Banana();
            fruit.buy();
        }else{
            System.out.print("本店暂不售卖"+name);
        }
    }
}
  1. 调用购买
public class Test {
    public static void main(String[] args) {
        FruitAdapter adapter = new FruitAdapter();
        adapter.buyFruit(FruitAdapter.APPLE);
        adapter.buyFruit(FruitAdapter.BANANA);
        adapter.buyFruit("橙子");
    }
}

打印结果

购买了苹果!
购买了香蕉!
本店暂不售卖橙子
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值