第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

有哪些避免/處理長(zhǎng)方法簽名的方法?

有哪些避免/處理長(zhǎng)方法簽名的方法?

不負(fù)相思意 2021-12-30 20:23:50
感覺(jué)這個(gè)方法簽名太長(zhǎng)了。有沒(méi)有更明智或更優(yōu)雅的方式來(lái)重寫(xiě)這個(gè)?  private Email createMail(long actualFileSize, String from, String recipient, String title,      String emailContent, MultipartFile attachment,      File file) {    Email mail = null;    if (actualFileSize <= Long.parseLong(emailFileSizeLimit)) {     mail = new Email(from, recipient, title,emailContent, null, file);    } else mail = new Email(from, recipient, title,emailContent, null, null);    return mail;  }
查看完整描述

2 回答

?
慕工程0101907

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊

if (actualFileSize <= Long.parseLong(emailFileSizeLimit)) {

    file = null;

}


return new Email(from, recipient, title,emailContent, null, file);

1)重構(gòu)。如果您認(rèn)為參數(shù)過(guò)多,您可以將該方法分成更小的、可管理的方法。


if (actualFileSize <= Long.parseLong(emailFileSizeLimit)) {

    file = null;

}


createMail(from, recipient, title,emailContent, null, file);


******


private Email createMail(long actualFileSize, String from, String recipient, String 

    title, String emailContent, MultipartFile attachment, File file) {

   return new Email(from, recipient, title,emailContent, null, file);

}

2) DTO。您在 dto 中提供參數(shù)并將其作為請(qǐng)求/響應(yīng)傳遞到整個(gè)鏈中,在需要時(shí)使用您需要的元素。當(dāng)您需要?jiǎng)?chuàng)建時(shí),您可以添加更多屬性。您通過(guò) setter 提供它們并在需要時(shí)傳遞


3) 建造者。您在類中完成了在完成操作后返回自身的邏輯。您可以通過(guò)對(duì)同一類調(diào)用不同的操作并返回結(jié)果來(lái)執(zhí)行下一個(gè)操作。


Mail mail = mailBuilder.addName(name).add(stuff).compile(); // will call constructor inside

4) 工廠


讓工廠包含所有方法并讓它決定調(diào)用什么方法。它可以是靜態(tài)的或托管的


factory.createBasicMail(name);

factory.createFileMail(name, file);

ps:為了您的心理健康,請(qǐng)使用 Lombok


查看完整回答
反對(duì) 回復(fù) 2021-12-30
?
拉莫斯之舞

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊

這似乎很適合Builder 模式,在那里您需要以精心設(shè)計(jì)的方式構(gòu)造一個(gè)新對(duì)象:


public class EmailBuilder {

  private Email mail;

  private String from;

  private String recipient;

  // other properties


  public EmailBuilder withFrom(String from) {

    this.from = from;

    return this;

  }

  public EmailBuilder withRecipient(String recipient) {

    this.recipient = recipient;

    return this;

  }

  public Email send() {

    mail = new Email(from, recipient, title,emailContent, null, file);

    return mail;

  }

}

用法


Email mail = new EmailBuilder()

   .withFrom("John Doe")

   .withRecipient("Mary Doe")

   .with...

   .send();


查看完整回答
反對(duì) 回復(fù) 2021-12-30
  • 2 回答
  • 0 關(guān)注
  • 271 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)