Мне нужен шаблон программирования, но я не мог понять, каким он будет. Я даже не уверен, возможно ли то, что я хочу, или нет. Допустим, у меня есть Class A
и 10 класс, унаследованный от A
. Я хочу, чтобы тот же метод Method Print()
реализовал по-разному в каждом унаследованном классе, но все они должны повторить один и тот же метод Class A
.Необходимое предложение дизайна шаблона
Class A
{
public virtual void Print()
{
}
protected void StartingProcedure()
{
/// something
}
protected void EndingProcedure()
{
/// something
}
}
Class A_1 : A
{
public override void Print()
{
StartingProcedure();
/// class specific print operation
EndingProcedure();
}
}
Class A_2 : A
{
public override void Print()
{
StartingProcedure();
/// class specific print operation
EndingProcedure();
}
}
Как вы видите, я не хочу, чтобы писать StartingProcedure();
на каждом переопределен Print
методом. Я хочу автоматизировать эту процедуру, когда я наследую новый класс от A
. Я не хочу возражать против процедур «Запуск и завершение», я хочу просто написать операцию печати по конкретному классу. Есть ли какой-либо шаблон, который обеспечит мне такое поведение класса?
КСТАТИ Я работаю с C#
Вызов 'base.Print()' ' –
base.Print()' не имеет реализации в нем. Это виртуальный метод. Даже если бы это было так, как я мог бы назвать унаследованные классы конкретными операциями? –
Кроме того, ваши «производные» классы не наследуются от 'A'. –