#AI 编程# 没想到,python还可以这样灵活用抽象类的
没有系统性学习过python语法,都是学了点皮毛就直接上手写代码的,今天在做我的开源应用todolist的代码重构,才发现可以这样用python提取公共代码的。
场景是这样的:
由于不同平台可能存在相同功能的不同代码实现,因此此前基于多桌面端和移动端抽取了顶层抽象类PlatformService,这样就可以依据不同平台进行编码和分离构建打包了。
但是,目前又发现桌面端间可能存在相同的功能,直接用相同的代码实现就可以了,只是移动端需要差异化实现。
然后就有了这种方式:加多一层抽象类DesktopCommonService,但是该层不需要实现顶层所有抽象方法,只是提取了桌面端相同实现的代码;此外,桌面端后续不直接继承顶层抽象类,而是继承自中间层抽象类,移动端则依然保持继承自顶层抽象类。
PS:如果你对我的开源应用TodoList感兴趣,欢迎下载体验哦:
tangislearning.github.io
没有系统性学习过python语法,都是学了点皮毛就直接上手写代码的,今天在做我的开源应用todolist的代码重构,才发现可以这样用python提取公共代码的。
场景是这样的:
由于不同平台可能存在相同功能的不同代码实现,因此此前基于多桌面端和移动端抽取了顶层抽象类PlatformService,这样就可以依据不同平台进行编码和分离构建打包了。
但是,目前又发现桌面端间可能存在相同的功能,直接用相同的代码实现就可以了,只是移动端需要差异化实现。
然后就有了这种方式:加多一层抽象类DesktopCommonService,但是该层不需要实现顶层所有抽象方法,只是提取了桌面端相同实现的代码;此外,桌面端后续不直接继承顶层抽象类,而是继承自中间层抽象类,移动端则依然保持继承自顶层抽象类。
PS:如果你对我的开源应用TodoList感兴趣,欢迎下载体验哦:
展开
评论
2
![[衰]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_34.cf5b4d5.png)