2015-10-26 86 views
0

有时人们想要隐藏在派生类中的方法,但不想违反里氏替换原则,所以他们把它留在那里,而不是抛出一个NotSupportedException,可能带有注释此方法抛出。在派生类中抛出NotSupportedExceptions被认为是不好的做法吗?

是不是这样的做法同样糟糕,如果在这个意义上不差,它从一个编译时问题转移问题的运行问题,如果人没有去绕过导出之前阅读每一个方法的每个评论班?

回答

2

我同意,如果一个子类不支持的方法在其超则作为一项规则,它可能不应该扩展该类别。除了需要运行时检查像你提到的(这可能是在情况下,优化性能是必要的一个问题)来处理可能的例外,但是,我认为这种做法更大的问题将是,它改变从子类责任到每一个类,需要使用它,使得软件封装更少,结果难以维护和推理(软件变得越大,问题就越严重)。

话虽这么说,这个问题本质上是主观的。如果这种方法适用于你,尽一切办法去做。我个人更喜欢简单的API而不是复杂的API,但那就是我。

相关问题