第4章 SOLID原则

本章继续探讨适用于Python的整洁设计概念。特别是,我们将回顾SOLID原则以及如何以符合Python语言习惯的方式实现它们。这些原则指定了为实现高质量软件必须遵循的一系列最佳实践。有些读者可能不知道SOLID指的是什么,因此这里做以下说明。

S:单一职责原则(Single Responsibility Principle,SRP)。

O:开/闭原则(Open/Closed Principle,OCP)。

L:里氏替换原则(Liskov's Substitution Principle,LSP)。

I:接口分离原则(Interface Segregation Principle,ISP)

D:依赖倒置原则(Dependency Inversion Principle,DIP)。

本章的学习目标如下。

熟悉用于软件设计的SOLID原则。

设计遵循单一职责原则的软件组件。

通过遵循开/闭原则让代码更容易维护。

在面向对象设计中,通过遵循里氏替换原则实现合适的类层次结构。

按接口分离原则和依赖倒置原则进行设计。

单一职责原则(SRP)指出,一个软件组件(通常是类)只能有一个职责。一个类只能有一个职责意味着它只负责做一件具体的事情,由此可得出结论,修改它的原因只有一个。

仅当域问题的特定方面发生变化时,才必须修改这个类。如果由于其他原因而必须修改这个类,就意味着抽象是不正确的,且类承担的职责太多。这可能昭示着至少缺少一个抽象,因此需要创建其他对象,以分担当前这个负担过多的类承担的额外职责。

第2章说过,这个设计原则有助于构建内聚性更高的抽象——遵循UNIX理念的对象,即做一件事情且只做一件事情的对象。在任何情况下,请避免对象承担多项职责(这种对象常被称为“上帝对象”,因为它们知道得太多了,或者比它们应该知道的更多)。这些对象将不同(大都不相关)的行为组合在一起,因此更难维护。 ...

Get 编写整洁的Python代码(第2版) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.