您可以使用公共密封方法调用受保护的虚拟方法,而不是使用公共虚方法。像这样:
public class Test {
public void DoStuff(){
// Do stuff here...
ProtectedDoStuff();
// Do more stuff...
}
protected virtual void ProtectedDoStuff(){
// Do stuff...
}
}
而不是:
public class Test {
public virtual void DoStuff(){
// Do stuff here...
// Do a lot of stuff...
// Do more stuff...
}
}
public class Test2 : Test {
public override void DoStuff(){
// Do same stuff as base
// Do different stuff
// Do more stuff just like base
}
}
如果需要一直需要,可以避免重新实现公共方法的所有功能。 我知道这已经在stackoverflow上被问过,但我找不到问题。
答案 0 :(得分:5)
这是模板方法模式。来自Wikipedia:
模板方法模式是一种行为设计模式,它定义了一种方法中算法的程序骨架,称为模板方法,它将一些步骤推迟到子类。它允许人们在不改变算法结构的情况下重新定义算法的某些步骤。