SOLID原则-第3部分

因此,Liskov替换原理指出,所有派生类都应可以替换为其原始基类。 实际上,这意味着子类对于它的类应该始终是可互换的。 该原理的主要目的是保证类型层次结构内的语义互操作性。

假设我们需要描述具有飞行能力的车辆速度

车辆基础类,我们应该能够知道它的任何子类是否可以飞行。 因此,我们可以将飞机作为衍生自Vehicle子类

为了清楚地说明我们的示例,我们还把Car作为派生自Vehicle的子类。

在应用程序中,您可以拥有不同种类的车辆,其中一些可以飞行,有些则不能。 但是我们今天的要求是获取速度描述。 因此,我们可以采用一种接收“ 车辆”类型的方法。

Liskov替代保证我们的speedDescription算法将保持运行,而不管它接收作为参数的S ubclass类型。 这个术语称为语义互操作性。

本系列文章涵盖了使用Swift语言的SOLID原理的实际示例,以前的路径是OPEN / CLOSE原理 。 对于完整的操场,您可以在github仓库中找到它。

希望我至少能够招待您,如果您有任何疑问,请不要犹豫。 推特:

鲍勃·戈德温(@bobgodwinx)| 推特
Bob Godwin(@bobgodwinx)的最新推文。 移动团队首席工程师@dunnhumby Germany GmbH。 @Apple的粉丝… twitter.com