Android代码的Builder模式实现

xiaoxiao2021-02-28  86

package com.metech.request; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.google.gson.JsonArray; import com.metech.app.Server; import com.metech.request.action.OnFailSessionObserver2; import com.metech.request.action.OnLoadObserver2; import com.metech.request.action.OnParseObserver2; import com.metech.request.base.MultiLoader; public class AddDemandRequest extends MultiLoader<Object> { public static final int HASH_CODE = AddDemandRequest.class.getSimpleName().hashCode(); private String sessionId = null; private int productCategoryId = 0; // private List<String> imageUrls = null; private String sizeReq; private int numReq; private String deliveryTime; private String deliveryPlace; private int expectedPrice; private String memo; private AddDemandRequest(Builder builder) { super(builder.failSessionObserver, null, builder.loadObserver, builder.parseObserver, false, false); this.sessionId = builder.sessionId; this.productCategoryId = builder.productCategoryId; this.imageUrls = builder.imageUrls; this.sizeReq = builder.sizeReq; this.numReq = builder.numReq; this.deliveryTime = builder.deliveryTime; this.deliveryPlace = builder.deliveryPlace; this.expectedPrice = builder.expectedPrice; this.memo = builder.memo; startRequest(); } @Override protected Integer parseBody(JSONObject object) throws JSONException { Integer value = null; if (object.has("demandId")) { // 求购信息id value = Integer.valueOf(object.getInt("demandId")); } return value; } @Override protected String getApi() { return Server.API_ADD_DEMAND; } @Override protected void setParams(JSONObject jsonObject) { try { jsonObject.put("sessionId", sessionId); jsonObject.put("productCategoryId", productCategoryId); jsonObject.put("imageUrls", new JSONArray(imageUrls)); jsonObject.put("sizeReq", sizeReq); jsonObject.put("numReq", numReq); jsonObject.put("deliveryTime", deliveryTime); jsonObject.put("deliveryPlace", deliveryPlace); jsonObject.put("expectedPrice", expectedPrice); jsonObject.put("memo", memo); } catch (JSONException ex) { ex.printStackTrace(); } } public static class Builder { private String sessionId = null; private int productCategoryId = 0; // private List<String> imageUrls = null; private String sizeReq; private int numReq; private String deliveryTime; private String deliveryPlace; private int expectedPrice; private String memo; private OnParseObserver2<? super Object> parseObserver = null; private OnLoadObserver2 loadObserver = null; private OnFailSessionObserver2 failSessionObserver = null; public Builder setSessionId(String sessionId) { this.sessionId = sessionId; return this; } public Builder setProductCategoryId(int productCategoryId) { this.productCategoryId = productCategoryId; return this; } public Builder setImageUrls(List<String> urls) { this.imageUrls = urls; return this; } public Builder setSizeReq(String sizeReq) { this.sizeReq = sizeReq; return this; } public Builder setNumReq(int numReq) { this.numReq = numReq; return this; } public Builder setDeliveryTime(String deliveryTime) { this.deliveryTime = deliveryTime; return this; } public Builder setDeliveryPlace(String deliveryPlace) { this.deliveryPlace = deliveryPlace; return this; } public Builder setExpectedPrice(int expectedPrice) { this.expectedPrice = expectedPrice; return this; } public Builder setMemo(String memo) { this.memo = memo; return this; } public Builder setObserverListener(OnParseObserver2<? super Object> parseObserver, OnLoadObserver2 loadObserver, OnFailSessionObserver2 failSessionObserver) { this.parseObserver = parseObserver; this.loadObserver = loadObserver; this.failSessionObserver = failSessionObserver; return this; } public AddDemandRequest build() { return new AddDemandRequest(this); } } }
转载请注明原文地址: https://www.6miu.com/read-78404.html

最新回复(0)