如何用UML组件图展示Python代码中class与module的差异及交互?
Python项目UML组件图绘制方法
组件的表示方式
UML组件图里,不管是Python的类还是模块,都用标准的组件符号(顶部带两个小凸起的矩形),但可以用构造型(<<>>包裹的标签)区分类型:
- 类组件(
Service、PdfCreator):直接把组件名写成<<class>> Service、<<class>> PdfCreator,一眼就能识别这是类。 - 模块组件(
calc_utils):写成<<module>> calc_utils,明确标注这是工具模块。
交互关系的连接器选择
不用因为组件是类还是模块更换连接器,核心看实际交互逻辑:
- 如果
Service只是临时调用calc_utils的函数,或者按需创建PdfCreator实例,用虚线箭头(依赖关系),箭头指向被调用的组件(比如Service→calc_utils的虚线箭头)。 - 如果
Service长期持有PdfCreator的实例(比如作为成员变量),用实线箭头(关联关系),箭头指向PdfCreator,还能额外加角色标签,比如Service侧标“使用者”,PdfCreator侧标“生成器”。
布局建议
把Service放在中心作为核心业务组件,PdfCreator和calc_utils摆放在两侧,每个组件下方可以补充一行简要功能说明,比如calc_utils下方标注“提供数值计算工具函数”,提升图的可读性。
内容的提问来源于stack exchange,提问作者till31
相关产品推荐
相关产品推荐

