Как вы можете видеть в приведенном ниже коде, метод DoStuff() получает вызов перед Init() во время построения дочернего объекта.
Я в ситуации, когда у меня есть множество дочерних классов. Поэтому повторение вызова метода DoStuff() непосредственно после Init() в конструкторе каждого дочернего элемента не будет изящным решением.
Можно ли создать какой-либо конструктор post в родительском классе, который будет выполнен после дочернего конструктора? Таким образом, я мог бы вызвать метод 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
}
}