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就可以了.

上一篇:python编程:从入门到实践)学习笔记--------第 4 章:操作列表


下一篇:Poverty in USA and China