是否有可能在代码中丢失过继承?

Fun*_*nky 11 c# asp.net oop

我目前正在开发一个asp.net网站,由其他人完成,而且它的工作非常复杂......我想是的!几乎每个类都继承自另一个类,然后是另一个类,另一个继续等等.......你必须平均大约8/10级才能获得基类,有时甚至更多!而且这些类中还有其他类,它们遵循相同的Uber Inheritence模式.这让我在代码中丢失很多次,导致上帝知道在视觉工作室打开了多少标签.

这是好的/正常的做法还是不好的做法?我觉得这是一个不好的做法,因为如此简单的事情变得过于复杂,过度使用继承导致不可扩展的代码...............但我可能是错的:)

谢谢!

Joe*_*ton 8

是的,过度使用继承可能会导致意大利面条仓库.继承是一种允许封装和抽象的工具.滥用它会导致过多的抽象,然后代码的目的变得无法使用.我已经看到这种模式在命令式构造中被滥用,其中方法在实际应用动作之前从方法传递到方法.

private bool getData()
{
    return getOtherData();
}

private bool getOtherData()
{
    return getSomeExtraData();
} 

private bool getSomeExtraData()
{
    return SeeHowTediousThisIs();
}
Run Code Online (Sandbox Code Playgroud)

一切正常,但它只是一个非常糟糕的维护架构.我发现这经常发生在试图引入复杂性的顾问/承包商(re:工作保障).


Joh*_*lan 5

有一个设计指南"有利于继承",8-10级继承中断.

http://en.wikipedia.org/wiki/Composition_over_inheritance