封裝狀態資訊碼

劉浩田發表於2021-12-14

封裝狀態碼

1,建立列舉類設定狀態碼

public enum AjaxStatus {
   OK(20000, "操作成功"),
   ERROR(50000, "操作失敗"),

   ////登入狀態相關的狀態碼
   EMAIL_NOT_FOUND(30000, "郵箱錯誤"),
   ADMIN_NOT_FOUND(30001, "使用者未啟用");

   private int status;
   private String message;

   //提供全參構造,不提供無參構造 ,狀態碼和資訊不能為空
   AjaxStatus(int status, String message) {
       this.status = status;
       this.message = message;
  }

   //提供get方法,不提供set方法,值固定不可以設定
   public int getStatus() {
       return status;
  }

   public String getMessage() {
       return message;
  }
}

2,提供結果集用來封裝狀態碼

public class AjaxResult extends HashMap<String, Object> {
   //把字串定義成常量,final修飾不可更改,以後直接用,防止字串過多打錯
   public static final String STATUS = "status";
   public static final String MESSAGE = "message";
   public static final String DATA = "data";

   //只提供一個構造器且只能傳入列舉類的狀態碼資訊
//   並且用私有的修飾,不提供給外部傳入數值
   private AjaxResult(AjaxStatus ajaxStatus) {
       this.put(STATUS, ajaxStatus.getStatus());
       this.put(MESSAGE, ajaxStatus.getMessage());
  }

   //   操作成功的方法
//   使用靜態方法修飾 用的時候直接類點靜態方法
   public static AjaxResult sucess() {
       AjaxResult ajaxResult = new AjaxResult(AjaxStatus.OK);
       return ajaxResult;
  }

   //   操作成功並且攜帶資料的方法
   public static AjaxResult sucess(Object data) {
       AjaxResult ajaxResult = new AjaxResult(AjaxStatus.OK);
       ajaxResult.put(DATA, data);
       return ajaxResult;
  }

   //   操作失敗的方法
   public static AjaxResult error() {
       return new AjaxResult(AjaxStatus.ERROR);
  }
//   自定義操作失敗的方法
//   失敗的方法多種多樣,有可能是郵箱不存在,有可能郵箱未啟用等等
//   可以在列舉類中定義多種多樣的AjaxStatus值
   public static AjaxResult error(AjaxStatus ajaxStatus){
       return new AjaxResult(ajaxStatus);
  }
}

3,外部呼叫

public class TestStatus {
   public static void main(String[] args) {
       System.out.println(AjaxResult.error(AjaxStatus.ADMIN_NOT_FOUND));
       System.out.println(AjaxResult.error(AjaxStatus.EMAIL_NOT_FOUND));
       System.out.println(AjaxResult.error());
       System.out.println(AjaxResult.sucess());
       System.out.println(AjaxResult.sucess("完成"));
  }
}

4,執行結果

 

相關文章