鏈式編程封裝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", "大連撫順");
}
}