August 2021
Intermediate to advanced
450 pages
4h 46m
Chinese
定义契约的简单规则就是通过抽象类或接口提供一个不含实现的方法。因此,设计遵守契约的子类时,它必须提供父类(或接口)中对不包含实现的方法的实现。
之前提到过,契约的优势之一是标准化编码的约定。我们可以通过一个没有采用编码标准的示例来详细探讨这个概念。有三个类:Planet、Car和Dog。每个类都实现方法来命名该实体。然而,由于它们各自的实现是独立的,每个类有不同的语法来获取名称。Planet类的代码如下:
同样,Car类的代码如下:
Dog类的代码如下:
显而易见任何使用这些类的人都需要翻看文档来查明如何获取每个对象的名字(这太糟糕了)。尽管查看文档不算是世界上最糟糕的命运,但如果一个项目(或公司)中的所有类使用相同的命名约定会让生活变得更加容易。这就是为什么会有Nameable接口。
所以可以为所有需要使用名字的类制定一个契约。用户在使用各种各样的类时无须查明命名对象的当前语法。Planet类、Car类和Dog类拥有相同的命名语法。
为了实现该崇高的目标,我们可以创建一个接口(我们可以使用之前用过的Nameable接口)。约定是所有类必须实现Nameable接口。因此如果所有类都遵循该命名约定,那么用户只需记住一个接口即可: ...
Read now
Unlock full access