0
有时人们想要隐藏在派生类中的方法,但不想违反里氏替换原则,所以他们把它留在那里,而不是抛出一个NotSupportedException
,可能带有注释此方法抛出。在派生类中抛出NotSupportedExceptions被认为是不好的做法吗?
是不是这样的做法同样糟糕,如果在这个意义上不差,它从一个编译时问题转移问题的运行问题,如果人没有去绕过导出之前阅读每一个方法的每个评论班?
有时人们想要隐藏在派生类中的方法,但不想违反里氏替换原则,所以他们把它留在那里,而不是抛出一个NotSupportedException
,可能带有注释此方法抛出。在派生类中抛出NotSupportedExceptions被认为是不好的做法吗?
是不是这样的做法同样糟糕,如果在这个意义上不差,它从一个编译时问题转移问题的运行问题,如果人没有去绕过导出之前阅读每一个方法的每个评论班?
我同意,如果一个子类不支持的方法在其超则作为一项规则,它可能不应该扩展该类别。除了需要运行时检查像你提到的(这可能是在情况下,优化性能是必要的一个问题)来处理可能的例外,但是,我认为这种做法更大的问题将是,它改变从子类责任到每一个类,需要使用它,使得软件封装更少,结果难以维护和推理(软件变得越大,问题就越严重)。
话虽这么说,这个问题本质上是主观的。如果这种方法适用于你,尽一切办法去做。我个人更喜欢简单的API而不是复杂的API,但那就是我。