场景:很多代码又一段公共处理流程,处理的逻辑用的字段是相同的,但是不同代码块入参有区别
解决:
1、提取基类dto
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class BaseActItem implements Serializable {
/**
* 操作
*/
private String action;
/**
* 添加版本号,http接口不返回该字段
*/
@JsonIgnore
private Long addVersion;
/**
* 删除版本号,http接口不返回该字段
*/
@JsonIgnore
private Long removeVersion;
/**
* 操作版本号
*/
private Long version;
}
2、不同入参继承基类
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class InterfaceItem extends BaseActItem {
/**
* 网卡名
*/
private String name;
/**
* 网卡地址,包括ip和掩码
*/
private String address;
}
3、公共方法抽取
public static ConfigRespDTO getConfigResp(Long currentVersion, String deviceMac, List<? extends BaseActItem> srcList) {
处理逻辑。。。
}
4、方法调用
List<InterfaceItem> interfaceItemList = new ArrayList<>();
getConfigResp(version, deviceMac, interfaceItemList);
网友评论