Skip to content

Instantly share code, notes, and snippets.

@upangka
Last active November 1, 2019 04:46
Show Gist options
  • Save upangka/100da7e4118f66f8b8c278cca75c5031 to your computer and use it in GitHub Desktop.
Save upangka/100da7e4118f66f8b8c278cca75c5031 to your computer and use it in GitHub Desktop.
使用build pattern对代码进行重构
public class CardUpgradeDao extends ShopBaseService {
// 重构之前得代码
public void insert(Integer userId,MemberCardRecord oldCard, MemberCardRecord newCard) {
CardUpgradeRecord re = db().newRecord(CARD_UPGRADE);
String operation = "Admin option";
re.setUserId(userId);
re.setOldCardId(oldCard.getId());
re.setNewCardId(newCard.getId());
re.setOldGrade(oldCard.getGrade());
re.setNewGrade(newCard.getGrade());
re.setOldCardName(oldCard.getCardName());
re.setNewCardName(newCard.getCardName());
re.setGradeCondition(newCard.getGradeCondition());
re.setOperate(operation);
re.insert();
}
// 之后的代码
public void insert(Integer userId,MemberCardRecord oldCard, MemberCardRecord newCard) {
String operate = "Admin option";
CardUpgradeRecordBuilder builder = CardUpgradeRecordBuilder.create(db().newRecord(CARD_UPGRADE));
CardUpgradeRecord record = builder.userId(userId)
.oldCardId(oldCard.getId())
.newCardId(newCard.getId())
.oldGrade(oldCard.getGrade())
.newGrade(newCard.getGrade())
.oldCardName(oldCard.getCardName())
.newCardName(newCard.getCardName())
.gradeCondition(newCard.getGradeCondition())
.operate(operate)
.build();
record.insert();
}
}
package com.vpu.mp.service.pojo.shop.member.record;
import com.vpu.mp.db.shop.tables.records.CardUpgradeRecord;
/**
* @author 黄壮壮
* @Date: 2019年11月1日
* @Description:
*/
public class CardUpgradeRecordBuilder {
private CardUpgradeRecord record;
private CardUpgradeRecordBuilder(){
record = new CardUpgradeRecord();
}
private CardUpgradeRecordBuilder(CardUpgradeRecord record) {
this.record = record;
}
public static CardUpgradeRecordBuilder create(CardUpgradeRecord record) {
return new CardUpgradeRecordBuilder(record);
}
public CardUpgradeRecordBuilder userId(Integer userId) {
record.setUserId(userId);
return this;
}
public CardUpgradeRecordBuilder oldCardId(Integer oldCardId) {
record.setOldCardId(oldCardId);
return this;
}
public CardUpgradeRecordBuilder newCardId(Integer newCardId) {
record.setNewCardId(newCardId);
return this;
}
public CardUpgradeRecordBuilder oldGrade(String oldGrade) {
record.setOldGrade(oldGrade);
return this;
}
public CardUpgradeRecordBuilder newGrade(String newGrade) {
record.setNewGrade(newGrade);
return this;
}
public CardUpgradeRecordBuilder oldCardName(String oldCardName) {
record.setOldCardName(oldCardName);
return this;
}
public CardUpgradeRecordBuilder newCardName(String newCardName) {
record.setOldCardName(newCardName);
return this;
}
public CardUpgradeRecordBuilder gradeCondition(String gradeCondition) {
record.setGradeCondition(gradeCondition);
return this;
}
public CardUpgradeRecordBuilder operate(String operate) {
record.setOperate(operate);
return this;
}
public CardUpgradeRecord build() {
return record;
}
}
// 在经过HuntsMan https://github.com/Try-Parser 指教后
public void insert(Integer userId,MemberCardRecord oldCard, MemberCardRecord newCard) {
CardUpgradeRecordBuilder
.create(db().newRecord(CARD_UPGRADE))
.userId(userId)
.oldCardId(oldCard.getId())
.newCardId(newCard.getId())
.oldGrade(oldCard.getGrade())
.newGrade(newCard.getGrade())
.oldCardName(oldCard.getCardName())
.newCardName(newCard.getCardName())
.gradeCondition(newCard.getGradeCondition())
.operate("Admin option")
.build()
.insert();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment