gpt4 book ai didi

c# - 我应该多积极地进行子类化以保持 DRY?

转载 作者:太空狗 更新时间:2023-10-29 22:26:38 25 4
gpt4 key购买 nike

<分区>

这个问题是在我收到 answer was proposed to another question I asked 时想到的.假设我有一个基类

public abstract class BaseClass {}

具有相当数量的派生类 - 比方说超过六个。这些派生类中的大多数除了从基类继承的内容外没有任何相似之处,但是其中两个有这样的相似之处

public class OneOfMyDerivedClasses : BaseClass
{
public string SimilarProperty {get; set;}
//Other implementation details
}

public class AnotherOneOfMyDerivedClasses : BaseClass
{
public string SimilarProperty {get; set;}
//Other implementation details, dissimilar to those in OneOfMyDerivedClasses
}

就是这样。除了从 BaseClass 继承的内容之外,这是任何子类共享的唯一相似之处。在我的实际应用程序中,我使用定义单个 SimilarProperty 属性的接口(interface) IHaveSimilarProperty 解决了这个问题,因为我所关心的是一个对象在使用中实现了所述接口(interface)。但是因为我有重复,我是否应该为这两个派生类定义一个中间基类来继承,即

public abstract IntermediateBaseClass : BaseClass
{
public string SimilarProperty {get; set;}
}

我也可以结合这两种方法,用接口(interface)装饰中间类......

所以我的问题是,就 OOP 最佳实践而言,这是否足以保证中间基类的重复。我应该积极消除所有重复,还是应该采取更务实的方法?如果是后者,促使我选择一种方法而不是另一种方法的经验法则是什么?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com