Builder模式如何在Java中实现-创新互联
这篇文章给大家介绍Builder模式如何在Java中实现,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Pre Java8
我们先来看下在Java8之前的Builder模式
public class Order {
private String code;
private List offers;
private Map features;
public static Order.Builder builder(){
return new Builder();
}
//省略getter setter
public static class Builder {
private OrderState orderState = new OrderState();
private static final BeanCopier orderCopier = BeanCopier.create(OrderState.class, Order1.class, false);
private class OrderState {
private String code;
private Map features;
private List offers;
//省略getter setter
}
public Builder code(String code) {
orderState.code = code;
return this;
}
public Builder features(Map features) {
orderState.features = features;
return this;
}
public Builder feature(String key, T obj) {
if (orderState.features == null) {
orderState.features = new HashMap<>();
}
orderState.features.put(key, obj);
return this;
}
public Builder offers(List offers) {
orderState.offers = offers;
return this;
}
public Builder offer(String offer) {
if (orderState.offers == null) {
orderState.offers = new ArrayList<>();
}
orderState.offers.add(offer);
return this;
}
public Order build() {
Order order = new Order();
orderCopier.copy(orderState, order1, null);
orderState = null;
return order;
}
}
} 标题名称:Builder模式如何在Java中实现-创新互联
文章来源:http://www.jxjierui.cn/article/eopdd.html


咨询
建站咨询
