gpt4 book ai didi

oop - 导数的前置条件/​​后置条件规则

转载 作者:行者123 更新时间:2023-12-02 19:38:54 27 4
gpt4 key购买 nike

在他的paper中关于LSP,Bob叔叔提到过:

Now the rule for the preconditions and postconditions for derivatives, as stated by Meyer, is:
...when redefining a routine [in a derivative], you may only replace its
precondition by a weaker one, and its postcondition by a stronger one.

如何判断子类型实例对象方法的前置条件/​​后置条件是否分别比父类型方法的前置条件/​​后置条件弱/强?

最佳答案

在没有严格定义的情况下制定它:

如果您的父类需要某些功能,则子类必须至少提供相同的功能。如果您的例程 promise 处理所有大于零的输入,则您的派生例程也必须接受所有这些或更多输入。这意味着前提条件只能更弱。

同样,后置条件必须更强。这意味着如果原始例程 promise 它将始终返回正数,则不允许您在派生例程中返回负数。

如果您的要求超出了父级的要求(即,如果您有更强的先决条件),那么您无法确定是否始终可以调用该例程。假设 B 和 C 是 A 的子类。有时,您可能有一个 A 类型的对象,它实际上也可能是 B 或 C。如果 C 的先决条件比 A 更强,则在调用例程时可能会遇到问题在该对象上。

如果我没有使用常用术语,我很抱歉,我真的记不清了,所以我只是尽力坚持对我来说有意义的术语。 (距离我上次听 Bertrand Meyer 的讲座已经过去两年了)

关于oop - 导数的前置条件/​​后置条件规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47480077/

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