因此,对于继承,我总是发现自己在处理最具体的类中极长的构造函数。我正在寻找一种可以避免这个问题的范例或方法。我曾想过使用工厂,但如果我这样做了,我仍然必须使用工厂中的构造函数。不管这种想法,我能做些什么来降低构造函数参数的长度吗?
例如:
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) }