以下の内容はhttps://tbpgr.hatenablog.com/entry/20120526/1338044410より取得しました。


書籍 Refactoring to Patterns | Utilities | Chain Constructors

パンくず

書籍 Refactoring to Patterns
Utilities
Chain Constructors

概要

Chain Constructorsについて

使用する場面

複数コンストラクタの内容が重複している。

対応方法

Chain Constructorsを適用する。
全体に共通するコンストラクタを用意し、各コンストラクタは差分のみを記述。

サンプル

RubyオーバーロードがないのでJavaのサンプルコード

リファクタリング
public class Sample {
  private String prama1;
  private String prama2;
  private String prama3;
  
  public Sample(String param1,String param2,String param3) {
    this.param1 = param1;
    this.param2 = param2;
    this.param3 = param3;
  }
  
  public Sample(String param1,String param2) {
    this.param1 = param1;
    this.param2 = param2;
    this.param3 = "";
  }
  
  public Sample(String param1) {
    this.param1 = param1;
    this.param2 = "";
    this.param3 = "";
  }
  
  public Sample() {
    this.param1 = "";
    this.param2 = "";
    this.param3 = "";
  }
}
リファクタリング
public class Sample {
  private String prama1;
  private String prama2;
  private String prama3;
  
  public Sample(String param1,String param2,String param3) {
    this.param1 = param1;
    this.param2 = param2;
    this.param3 = param3;
  }
  
  public Sample(String param1,String param2) {
    new Sample(param1,param2,"");
  }
  
  public Sample(String param1) {
    new Sample(param1,"","");
  }
  
  public Sample() {
    new Sample("");
  }
}



以上の内容はhttps://tbpgr.hatenablog.com/entry/20120526/1338044410より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14