中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java 中設計模式(值對象)的實例詳解

發布時間:2020-10-03 23:19:46 來源:腳本之家 閱讀:138 作者:lqh 欄目:編程語言

java 中設計模式(值對象)的實例詳解

應用場景:在Java開發時,需要來回交換大量的數據,比如要為方法傳入參數,也要獲取方法的返回值,該如何能更好的進行數據的交互?這個時候就需要用到我們的值對象設計模式

值對象的本質是“封裝數據

具體步驟: 

   1. 所寫的類必須實現序列化Serializable(序列化是為了防止數據讀取的時候數據丟失)。 同時主要這個類的命名規范。值對象的命名規范: XxxValueObject, XxxVO, XxxModel。

   2. 必須要寫一個成員變量Id作為主鍵。(這個很好理解,你傳入的數據姓名啊,地址或者其他可以相同,但是一定要有一個Id作為主鍵,來區分不同數據)

  3. 必須要寫一個空參的構造函數。
    空參構造函數可以用來收集部分數據以及不同地方的數據(比方說你在這個頁面用戶只填寫了姓名和性別信息,在其他地方收集到地址信息,空參很好的收集起來)

  4. 寫所有成員變量的set-get方法。用來收集和處理數據。為每個屬性提供get()、set()方法(如果是boolean型變量,最好把get改成is)

  5. 推薦覆蓋實現equals()、hashCode()和toString()方法

具體實現代碼(以傳遞個人地址數據為例)

import java.io.Serializable;

//值對象的命名規范: XxxValueObject, XxxVO, XxxModel

//1實現序列化接口
public class AddressVO implements Serializable {
  private static final long serialVersionUID = 1L;
  // 2私有化所有成員變量
  private String userId;
  private String name;
  private int age;
  private boolean man; //變量名建議不要取成isMan(JSP碰到這種情況會有bug)
  private String address;

  // 3 必須要有一個默認的空參構造
  public AddressVO() {
  }

  // 4 寫所有成員變量的setter-getter方法---boolean型變量的getter方法寫成isXXX()的形式
  public String getUserId() {
    return userId;
  }

  public void setUserId(String userId) {
    this.userId = userId;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public boolean isMan() {
    return man;
  }

  public void setMan(boolean man) {
    this.man = man;
  }

  public String getAddress() {
    return address;
  }

  public void setAddress(String address) {
    this.address = address;
  }

  //5 建議寫equals,hashCode,toString這幾個方法
  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((userId == null) ? 0 : userId.hashCode());
    return result;
  }

  @Override
  public boolean equals(Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    AddressVO other = (AddressVO) obj;
    if (userId == null) {
      if (other.userId != null)
        return false;
    } else if (!userId.equals(other.userId))
      return false;
    return true;
  }

  @Override
  public String toString() {
    return "AddressVO [userId=" + userId + ", name=" + name + ", age="
        + age + ", man=" + man + ", address=" + address + "]";
  }


}

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新竹市| 洞口县| 天气| 电白县| 孟津县| 青岛市| 广州市| 鹤庆县| 温泉县| 玉门市| 海口市| 洮南市| 武汉市| 新沂市| 洛川县| 孟州市| 镇宁| 嘉禾县| 河津市| 南宁市| 奈曼旗| 云阳县| 忻州市| 沭阳县| 习水县| 达日县| 太湖县| 鲁山县| 潢川县| 灵宝市| 临颍县| 茂名市| 远安县| 金乡县| 麻江县| 万宁市| 昆山市| 体育| 会理县| 莒南县| 如东县|