场景:
Order order = new Order();
if (order.getType() == 1) {
handle1(order);
} else if (order.getType() == 2) {
handle2(order);
} else if (order.getType() == 3) {
handle3(order);
}
实现(类似于简易版的策略模式):
private final static ImmutableMap<Integer, Function<Order,String>> ORDER_TYPE_MAP =
ImmutableMap.<Integer, Function<Order,String>>builder()
.put(1, order->handle1(order))
.put(2, order->handle2(order))
.build();
ORDER_TYPE_MAP.get(order.getType() ).accept(new Order());