NO.Idea

Python SOLID Principles

Single Responsibility Principle#

一个类应该只有一个方法。如果一个类有多余一个方法,它就被耦合了。耦合的意思是牵一发动全身。

Open-Closed Principle#

类应该对扩展开放,对修改封闭

使用类继承来改造代码#

继承整个类,重写方法。这样的缺点是需要创建不同的类,调用同一个方法。

使用组合与依赖注入来改造代码#

让某一个方法调用一个三方类的方法。用注入三方类的方法改写。

Liskov Substitution Principle#

  • 子类必须完全实现父类的抽象方法,但不能覆盖父类的非抽象方法
  • 子类可以实现自己特有的方法
  • 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松
  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格
  • 子类的实例可以替代任何父类的实例,但反之不成立

Interface Segregation Principle#

父类的方法应找到一个共同点,已避免子类继承了不需要继承的方法。

Dependency Inversion Principle#

类 A 调用 类 B 和 类 C。A 是客户端,属于高层次模型,它应调用抽象方法,而非某一个接口的具体方法。