Android代码的Builder模式实现

来源:互联网 发布:淘宝好的零食店铺知乎 编辑:程序博客网 时间:2024/06/05 06:26
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();}@Overrideprotected Integer parseBody(JSONObject object) throws JSONException {Integer value = null;if (object.has("demandId")) {// 求购信息idvalue = Integer.valueOf(object.getInt("demandId"));}return value;}@Overrideprotected String getApi() {return Server.API_ADD_DEMAND;}@Overrideprotected 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);}}}

原创粉丝点击