策略模式用来解决代码中大量的if-else的情况。对这类情况定义一个接口来规定对应的基本策略,然后对每一种实际情况都实现一种特定的类来具体实现对应的逻辑。
策略模式通过查表+接口多态的方式来代替对应的if-else。
public interface OrderService{
void call(Order o);
}
public class OrderServiceImpl1 implements OrderService{
@Override
public void call(Order o){
//具体的一个业务逻辑代码
xxx
xxx
}
}
public class OrderServiceFactory{
Map<String,OrderService> services = new HashMap<>();
static{
service.put("impl1",new OrderServiceImpl());
service.put("impl2",new XXX());
}
public OrderService getOrderService(String type){
OrderService service = service.get(type);
return service;
}
}
从上述代码,可以看出策略模式通过接口多态+查表的方式,避免了大量的if-else,使我们的代码解耦,也更加简洁
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_40276626/article/details/121382996
内容来源于网络,如有侵权,请联系作者删除!