0%

类与接口

第37条:用组合起来的类来实现多层结构,不要用嵌套的内置类型

一般我们在编写项目代码时,由于初始的需求简单,需要用到的数据结构也简单,所以我们会经常使用python提供的容器来用做类的内部状态记录。但是随着需求的迭代,我们可能会使用到数据结构可能会更变得复杂,这时,我们不能简单的对用于记录内部状态的容器进行嵌套,而是应该考虑将内部的某些状态封装成一个类,并在外部的接口类中对这些数据类进行组合。

第38条:让简单的接口接受函数,而不是类的实例

Python有很多内置的API,都允许我们传入某个函数来定制它的行为,这种函数被成为hook函数,API在执行的时候,会调用这些hook函数。例如,list类的sort方法的key参数。在其他编程语音中,hook函数可能是通过抽象类或者接口来定义的(例如Java),但在python中一般是直接使用无状态的函数(即不会对内部状态进行修改)

第39条:通过@classmethod多态来构造同一体系中的各类对象