作者简介
211工程院校贵州大学管理学院硕士研究生、互联网金融行业资深DevOps研发工程师. 曾在国内多家知名互联网公司 平安科技、微众银行、顺丰科技、魅族任职. 具有多年国内一线互联网公司自动化运维平台设计与开发经验。
OOP七大设计原则的Python实现
依赖倒置原则
前言:
每个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑称之为低层模块,在Python中用抽象类来表示,由原子逻辑组装而成的就是高层模块,抽象类是不能被实例化的。细节就是实现类,通过继承抽象类而产生的类就是细节,是可以被直接实例化的。一言以蔽之,采用依赖倒置原则可以减少类间的耦合性、提高系统的稳定性、提高代码的可读性和可维护性。依赖倒置原则包含如下三层含义:
高层模块(由原子逻辑组装而成)不应该依赖低层模块(不可分割的原子逻辑), 两者都应该依赖抽象
抽象(抽象类)不应该依赖细节(实现类)
细节应该依赖抽象

由以上类图所描绘的场景可知,司机类和奔驰车类都属于细节,并没有实现或继承抽象。它们是对象级别的耦合。通过类图可知司机类Driver有一个用来开车的drive()方法, Benz类有一个表示车辆运行的run()方法, 并且奔驰车类Benz依赖于司机类Driver,用户模块Client是一个高层模块,负责调用司机类Driver和奔驰车类Benz。未采用依赖倒置原则的代码如下:
这是最不灵活的写法,如果驾驶员的车库中新增了一辆bmw,新车无法上路。 继续修改代码如下:
以上代码中,如果benz或bmw的运行方法不是run,那么将会报错。此时需要将Car类的run方法进行抽象,来对子类进行约束。上面代码的设计没有使用依赖倒置原则,我们已经郁闷的发现,模块与模块之间耦合度太高、生产力太低,只要需求一变就会面临代码的大面积重构。现在引入依赖倒置原则,重新设计的类图如下:
示例代码:
3
结束语
如果本文可以对您的工作学习带来帮助,请扫描左侧赞赏码以资鼓励作者;文章勘误请扫描右侧二维码联系作者。