契约式设计编程的最佳实践是什么。
在大学时,我通过合同范式学习设计(在 OO 环境中)我们已经学习了三种解决问题的方法:
1)总编程:涵盖所有可能的例外情况(参见数学)
2)名义规划:只有在满足前提条件时才“承诺”正确的效果。(否则效果未定义)
3)防御性编程:使用异常来表示方法的非法调用
现在,我们已经专注于不同的 OO 场景在每种情况下的正确使用,但我们还没有学会何时使用 WHICH……(主要是练习强制执行的策略……)
现在我觉得我没有问过我的老师很奇怪(但话说回来,在上课时,没有人问过)
就个人而言,我现在从不使用名义,并且倾向于用异常替换前置条件(所以我宁愿使用 : throws IllegalDivisionByZero,而不是说明'前置条件:除法器应该不同于零)并且只编程有意义的总和(所以我不会返回除以零的常规值),但这种方法只是基于个人的发现和喜欢。
所以我问你们:
有没有最好的做法??