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.scyingshan.cn/article/eopdd.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 