Java 多重if else 优化 (策略模式+工厂)

if ("轿车".equals(carType)) {
        System.out.println("轿车");
     } else if ("卡车".equals(carType)) {
        System.out.println("卡车");
    } else if ("suv".equals(carType)) {
        System.out.println("SUV");
    }
//车接口
public interface ICarService {
    void showCar();
}
/**
**策略模式
*/
//轿车实现类
public class JiaoCheServiceImpl implements ICarService {
    @Override
    public void showCar() {
        System.out.println("展示轿车");
    }
}
//卡车实现类
public class KaCheServiceImpl implements ICarService {
    @Override
    public void showCar() {
        System.out.println("卡车");
    }
}
//suv实现类
public class SuvServiceImpl implements ICarService {
    @Override
    public void showCar() {
        System.out.println("suv");
    }
}
//服务工产类
public class CarServicesFactory {

    private static final Map<String, ICarService> map = new HashMap<>();
    static {
        map.put("轿车", new JiaoCheServiceImpl());
        map.put("卡车", new KaCheServiceImpl());
        map.put("SUV", new SuvServiceImpl());
    }
    public static ICarService getCarService(String CarType) {
        return map.get(CarType);
    }
}
public class Test {
    public static void main(String[] args) {
        String carType = "轿车";
        ICarService carService = CarServicesFactory.getCarService(carType);
        carService.showCar();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值