そのため、継承を使用すると、最も特定のクラスで非常に長いコンストラクターを処理していることに常に気づきます。この問題を回避できるパラダイムまたは方法を探しています。ファクトリを使用することも考えましたが、使用した場合でも、ファクトリでコンストラクタを使用する必要があります。その考えに関係なく、コンストラクターのパラメーターの長さを抑えるためにできることはありますか?
例えば:
abstract class DrawableComponent : Component, ITransformable, IScalable, IDrawable, IRotatable
次のようなコンストラクタを持つ子クラスです
DrawableComponent(string Name, int SizeX, int SizeY, int X, int Y, float Rotation) : base(Name) { ... }
では、その子を作りたいとしましょう。物事はより複雑で醜くなるだけです。
class TextBoxComponent : DrawableComponent, IRenderable
コンストラクターは非常に長くなります。
public TextBoxComponent(
IDrawableUnit Background,
IDrawableUnit Text,
string Name,
int X,
int Y,
int SX,
int SY)
: base(Name, SX,SY,X,Y,0.0f)
{
this.Background = Background;
this.Foreground = Foreground;
}
これを要約すると、次のようなことにうんざりしています。
class Blah {Blah(blah)}
class childBlah : Blah {childBlah(blah,blahs,blaha) : base (blah)}
class grandChildBlah : childBlah {grandChildBlah(blah, blahs, blaha, blaht, blauh) : base(blah,blahs,blaha) }