パンくず
書籍 Refactoring to Patterns
Utilities
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(""); } }