【分割】
【分割】是指将原本参杂交互在一起的模块,按照逻辑分割成不同的模块。分割可以使得各模块的逻辑功能与流程更清晰并且在调整任何一个单一模块时,减少模块间干扰。核心思想很简单,也非常通用,希望以后能避免这一类问题。
比如分割 pyqt5 的 ui 模块与逻辑模块,核心思想是使得 ui 模块和业务逻辑模块分割,优点在于:
- 使得 .ui 文件通过外部工具 pyuic 直接转化为 .py 文件时,不会影响业务逻辑的实现,避免重复工作。
- 业务逻辑清晰明了。
pyqt 为例的具体实现方法
实现方法:PyQt5 如何让界面和逻辑分离简介
更详细的一个文档,内容也更多,请参见 Pyqt5系列(二 )-第一个PyQt程序,事实上这一个系列都不错,可以看看。
其中,关于 super 的用法,请参见 Python super
【分割】思想的其他应用
这一类的【分割】思想在其他程序中也有体现。
比如在实现 simulator 函数的生成计划 fn_create_plan 时,主生成的逻辑流程不应受到模拟数据的干扰,而应该与最原始的生成流程完全一致;模拟数据一类的补丁程序应在另外单独的模块中实现,在主流程中调用(隐藏其中),且不影响对主流程的理解。
这是因为,生成计划是一个完整的逻辑模块,补丁程序(覆盖部分数据)是另外一个逻辑模块,两者不应混为一谈。
通用总结
- 步骤:
1.1 将整体要实现的功能划分成不同的逻辑功能模块。
1.2 根据不同的逻辑功能,划分不同的逻辑模块(一个模块只完成一个逻辑功能),模块间只有输入输出参数会互相影响。 - 不同模块间的关系有:
2.1. 补丁关系。
2.2 先后逻辑顺序关系。