我注意到在很多 Microsoft .NET 类中通常有一个非抽象/虚拟公共方法,例如
public bool MyAwesomeMethod(object someParameter);
以及受保护的抽象/虚拟方法,例如
protected virtual bool OnMyAwesomeMethod(object someParameter);
我最近开始怀疑这是否是一种已知的设计模式,以及这种设计的优点和缺点可能是什么。是否所有关于使基类能够执行类的子类无法阻止的一些逻辑(例如日志记录)?出于某种原因,默认情况下对您知道要在子类中覆盖的方法使用这种排序设计是否不可取?还有其他我没有考虑的因素吗?
在此先感谢您的帮助。