在构建类结构时,我希望派生类可能拥有派生成员类。例如:
class GamePiece
{
}
class Checker : GamePiece
{}
class ChessMan : GamePiece
{}
class Game
{
protected GamePiece _piece;
}
class Checkers : Game
{
Checkers(){ _piece = new Checker(); }
}
class Chess : Game
{
Chess(){_piece = new ChessMan();}
}
这被严重地过度简化了,但确实说明了这一点。现在假设有事件等,我想在基类构造函数中附加公共事件,在派生构造函数中附加专用事件。例如,棋子和棋子都可能具有“捕获”事件和“移动”事件。我想将它们附加到基本构造函数中。但是,诸如“castled”之类的特定事件将仅附加在特定构造函数中。
我遇到的问题是基本构造函数似乎只能在派生构造函数之前运行。我如何实现这一点,以便在调用基本“游戏”构造函数以附加到事件之前实际实例化“游戏部件”。
我的直觉表明,最好通过从构造函数中删除该功能并简单地拥有一个“Attach()”成员函数并在那里处理它来更好地处理。但是,我想确保我朝着正确的方向前进,因为在构造函数中似乎应该有一种方法可以做到这一点。