Как вы можете видеть в приведенном ниже коде, метод DoStuff () вызывается до метода Init () во время создания объекта Child.
Я нахожусь в ситуации, когда у меня много дочерние классы. Следовательно, повторение вызова метода DoStuff () непосредственно после Init () в конструкторе каждого дочернего элемента не будет изящным решением.
Могу ли я каким-либо образом создать какой-то конструктор сообщений в родительском классе, который будет выполняться после дочернего конструктора? Таким образом, я мог бы вызвать там метод DoStuff ().
Если у вас есть какая-либо другая идея дизайна, которая могла бы решить мою проблему, я бы тоже хотел ее услышать!
abstract class Parent
{
public Parent()
{
DoStuff();
}
protected abstract void DoStuff();
}
class Child : Parent
{
public Child()
// DoStuff is called here before Init
// because of the preconstruction
{
Init();
}
private void Init()
{
// needs to be called before doing stuff
}
protected override void DoStuff()
{
// stuff
}
}