0

これらの記事では、長いコンストラクターを修正する方法について詳しく説明しています

しかし、super() や base() の長い呼び出しで問題を解決するにはどうすればよいでしょうか。すなわち

LongConstructorClass(string s1, string s2, string s3, string s4, string s5) { }

InheritsLongConstructorClass() : base("foo","bar","foo","bar","foo") { }

基本的に、複数のコンストラクターがあり、それぞれに長い base() 呼び出しがあるとイライラします。

4

1 に答える 1

2

ParameterObject設計パターンを使用して、複数のパラメーター値を 1 つのオブジェクトに結合できます。次のような設計を検討してください。

public class MyClassOld { 
     MyClassOld(param1,param2,param3,param4) {...}  
}

次のように書かれています

public class ParamObject {
    ParamObject(param1,param2,param3,param4) { }
}

public class MyClassNew {
    MyClassNew(ParamObject p) {}
}

public class MyChildClassNew {
    MyChildClassNew(ParamObject p) { super(p); }
}

ParamObjectこれで、構築をParamObject容易にするためのビルダー パターンを追加できます。

于 2013-06-26T22:06:11.683 に答える