欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 中設(shè)計(jì)模式(值對(duì)象)的實(shí)例詳解

 更新時(shí)間:2017年09月21日 09:43:28   投稿:lqh  
這篇文章主要介紹了java 中設(shè)計(jì)模式(值對(duì)象)的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下

java 中設(shè)計(jì)模式(值對(duì)象)的實(shí)例詳解

應(yīng)用場景:在Java開發(fā)時(shí),需要來回交換大量的數(shù)據(jù),比如要為方法傳入?yún)?shù),也要獲取方法的返回值,該如何能更好的進(jìn)行數(shù)據(jù)的交互?這個(gè)時(shí)候就需要用到我們的值對(duì)象設(shè)計(jì)模式

值對(duì)象的本質(zhì)是“封裝數(shù)據(jù)

具體步驟: 

   1. 所寫的類必須實(shí)現(xiàn)序列化Serializable(序列化是為了防止數(shù)據(jù)讀取的時(shí)候數(shù)據(jù)丟失)。 同時(shí)主要這個(gè)類的命名規(guī)范。值對(duì)象的命名規(guī)范: XxxValueObject, XxxVO, XxxModel。

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

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

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

  5. 推薦覆蓋實(shí)現(xiàn)equals()、hashCode()和toString()方法

具體實(shí)現(xiàn)代碼(以傳遞個(gè)人地址數(shù)據(jù)為例)

import java.io.Serializable;

//值對(duì)象的命名規(guī)范: XxxValueObject, XxxVO, XxxModel

//1實(shí)現(xiàn)序列化接口
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碰到這種情況會(huì)有bug)
  private String address;

  // 3 必須要有一個(gè)默認(rèn)的空參構(gòu)造
  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這幾個(gè)方法
  @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 + "]";
  }


}

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

相關(guān)文章

  • Java并發(fā)編程面試之線程池

    Java并發(fā)編程面試之線程池

    線程池和并發(fā)問題是Java技術(shù)面試中面試官比較喜歡問的問題之一。在這里,從面試的角度列出了大部分重要的問題,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java分頁工具類及其使用(示例分享)

    Java分頁工具類及其使用(示例分享)

    本篇文章主要分享了Java分頁工具類及其使用的示例代碼,具有一定的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • Elasticsearch索引結(jié)構(gòu)與算法解析

    Elasticsearch索引結(jié)構(gòu)與算法解析

    ?作為搜索引擎的一部分,ES自然具有速度快、結(jié)果準(zhǔn)確、結(jié)果豐富等特點(diǎn),那么ES是如何達(dá)到“搜索引擎”級(jí)別的查詢效率呢?首先是索引,其次是壓縮算法,接下來我們就一起了解下ES的索引結(jié)構(gòu)和壓縮算法
    2023-04-04
  • Java使用Jedis操作Redis服務(wù)器的實(shí)例代碼

    Java使用Jedis操作Redis服務(wù)器的實(shí)例代碼

    本篇文章主要介紹了Java使用Jedis操作Redis服務(wù)器的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java四種權(quán)限修飾符知識(shí)點(diǎn)詳解

    Java四種權(quán)限修飾符知識(shí)點(diǎn)詳解

    在本篇文章里小編給大家分享的是關(guān)于Java四種權(quán)限修飾符知識(shí)點(diǎn)詳解內(nèi)容,需要的朋友們可以參考下。
    2020-05-05
  • 初步理解Java的泛型特性

    初步理解Java的泛型特性

    這篇文章主要介紹了Java的泛型特性,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • Java通過反射訪問注解信息的方法示例

    Java通過反射訪問注解信息的方法示例

    這篇文章主要介紹了Java通過反射訪問注解信息的方法,結(jié)合實(shí)例形式分析了java基于反射訪問類成員方法注解信息的相關(guān)操作技巧,需要的朋友可以參考下
    2019-08-08
  • maven tomcat plugin實(shí)現(xiàn)熱部署

    maven tomcat plugin實(shí)現(xiàn)熱部署

    這篇文章主要介紹了maven tomcat plugin實(shí)現(xiàn)熱部署,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • Spring MVC數(shù)據(jù)綁定概述及原理詳解

    Spring MVC數(shù)據(jù)綁定概述及原理詳解

    這篇文章主要介紹了Spring MVC數(shù)據(jù)綁定概述及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Java中關(guān)于文件路徑讀取問題的分析

    Java中關(guān)于文件路徑讀取問題的分析

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著Java中關(guān)于文件路徑讀取問題展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評(píng)論