其他分享
首页 > 其他分享> > COD-OOD,继承和图层超类型

COD-OOD,继承和图层超类型

作者:互联网

我有一个关于将通用代码保存在基类中并让派生类调用它的问题,即使派生类的触发方法是从基派生的.因此,base-> derived-> base类型调用堆栈.

下列外观好吗,还是闻起来?我已经编号了流程步骤…

public abstract class LayerSuperType
{
  public void DoSomething()  // 1) Initial call from client
  {
    ImplementThis(); // 2) Polymorphic dispatch
  }

  protected abstract void ImplementThis();

  protected void SomeCommonMethodToSaveOnDuplication(string key)  // 4)
  {
    Configuration config = GetConfiguration(key);
  }
}

public class DerivedOne : LayerSuperType
{
  protected virtual void ImplementThis() // 2)
  {
    SomeCommonMethodToSaveOnDuplication("whatever");  // 3) Call method in base
  }
}

public class DerivedTwo : LayerSuperType
{
  protected virtual void ImplementThis() // 2)
  {
    SomeCommonMethodToSaveOnDuplication("something else"); // 3) Call method in base
  }
}

解决方法:

看起来非常简化Template Method Pattern,其中子类在算法实现的正确时机执行某些特定类型的操作,但总体流程由基类上的方法控制.您还以基类方法的形式为子类提供了一些服务;只要您保持良好,就可以了,只要SOLID就可以了.

标签:oop,polymorphism,inheritance,c
来源: https://codeday.me/bug/20191102/1988181.html