鏈式編程封裝javaBean數據

鏈式編程封裝javaBean數據

1. 前言

在封裝數據過程中,每添加一次數據都需要對象.set方法,代碼寫起來重複且不夠美觀。使用鏈式編程封裝javaBean數據,可以實現循環添加數據。

2. 鏈式編程封裝數據Demo

2.1.創建一個javaBean

package com.bruce.hulk.dao.testbean;

import lombok.*;

/**
 * @author bruce
 * 
 */
@Setter
@Getter
@ToString
@Builder
@EqualsAndHashCode
public class ColumnDTO {
    private String columnName;
    private String columnValue;
    private ColumnType columnType;

}

2.2. 鏈式編程封裝javaBean

  • 實現核心思想
    • 1.構造器中創建一個hashSet,初始化類的同時創建HashSet對象。
    • 2.addColumn方法鏈式編程實現思想:最後必須返回當前類對象。
    • 3.封裝的數據放到HashSet集合優勢:自動去除添加的重複數據,確定添加數據的唯一性。
    • 4.提供一個獲取封裝數據的方法,同時將HashSet轉爲List集合。方便從集合中取數據。
package com.bruce.hulk.dao.testbean;

import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import java.util.List;
import java.util.Set;

/**
 * @author bruce
 * 
 */
public class ColunmDTOHolder {
    Set<ColumnDTO> colunmSet;
    private ColunmDTOHolder(){
        //1.構造器中創建一個hashSet
        colunmSet = Sets.newHashSet();
    }
    public static ColunmDTOHolder of (){
        return new ColunmDTOHolder();
    }


    /**
     * 2.
     * @MethedName: addColumn鏈式編程實現思想:最後必須返回當前類對象。
     * @Description: 封裝ColumnDTO數據,並添加到HashSet集合中。能夠自動
     * 去除添加的重複數據,確定添加數據的唯一性。
     */
    public ColunmDTOHolder addColumn(String columnName,String columnValue) {
        this.colunmSet.add(ColumnDTO.builder()
                .columnName(columnName)
                .columnValue(columnValue)
                .columnType(ColumnType.WHERE)
                .build());
        return this;
    }

    //3. 提供一個獲取封裝數據的方法,同時將HashSet轉爲List集合。方便從
    //集合中取數據。
    public List<ColumnDTO> getColumnDTO() {
         return Lists.newArrayList(colunmSet);
    }
}

2.3.鏈式編程使用

  • 使用鏈式編程封裝提供的方法添加數據非常的方便好用,代碼結構美觀性得到了優化。
package com.bruce.hulk.dao.testbean;

/**
 * @author bruce
 */
public class AppTest {
    public static void main(String[] args) {

// -----------沒有使用鏈式編程,添加數據方式--------------
        ColumnDTO columnDTO = new ColumnDTO();
        columnDTO.setColumnName("username");
        columnDTO.setColumnValue("zhansan");
        columnDTO.setColumnName("passwd");
        columnDTO.setColumnValue("123456");
        columnDTO.setColumnName("address");
        columnDTO.setColumnValue("大連撫順");


// -----------使用鏈式編程,添加數據方式--------------

        ColunmDTOHolder column = ColunmDTOHolder.of()
                //通過鏈式編程實現了循環添加數據
                .addColumn("username", "zhangsan")
                .addColumn("username", "zhangsan")
                .addColumn("passwd", "1258963")
                .addColumn("address", "大連撫順");
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章