Jes*_*olm 2 c# oop virtual-functions
我有一个基类,我需要确保在类专门化中覆盖所有虚拟方法.我不能使用抽象类/方法,因为我还需要在基本方法中执行一些代码.
我该怎么做呢?
public class BaseClass
{
public virtual void DoStuff()
{
// do something
}
}
public class DerivedClass : BaseClass
{
public override void DoStuff()
{
// do derived work
base.DoStuff();
}
}
Run Code Online (Sandbox Code Playgroud)
dca*_*tro 11
使用钩子,更好地称为模板方法模式:
public abstract class BaseClass
{
public void Start()
{
// do something
OnStart();
// do something else
}
protected abstract void OnStart();
}
Run Code Online (Sandbox Code Playgroud)
这采用了我最喜欢的好莱坞原则,许多框架的基础:不要打电话给我们,我们会打电话给你!
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |