我目前正在开发一个asp.net网站,由其他人完成,而且它的工作非常复杂......我想是的!几乎每个类都继承自另一个类,然后是另一个类,另一个继续等等.......你必须平均大约8/10级才能获得基类,有时甚至更多!而且这些类中还有其他类,它们遵循相同的Uber Inheritence模式.这让我在代码中丢失很多次,导致上帝知道在视觉工作室打开了多少标签.
这是好的/正常的做法还是不好的做法?我觉得这是一个不好的做法,因为如此简单的事情变得过于复杂,过度使用继承导致不可扩展的代码...............但我可能是错的:)
谢谢!
是的,过度使用继承可能会导致意大利面条仓库.继承是一种允许封装和抽象的工具.滥用它会导致过多的抽象,然后代码的目的变得无法使用.我已经看到这种模式在命令式构造中被滥用,其中方法在实际应用动作之前从方法传递到方法.
private bool getData()
{
    return getOtherData();
}
private bool getOtherData()
{
    return getSomeExtraData();
} 
private bool getSomeExtraData()
{
    return SeeHowTediousThisIs();
}
一切正常,但它只是一个非常糟糕的维护架构.我发现这经常发生在试图引入复杂性的顾问/承包商(re:工作保障).