知识卡片

模块划分的四种思路

结构图卡

内容

第12-14章讲的粗粒度功能模块划分、如何分层、用例驱动的模块划分,可以用一张图概括对比清楚——作为架构师”看家本领”的模块划分技能,一共有四种思路。自顶向下有两条子路径:水平切分思路对应分层(先划出层次骨架,再往里填内容);垂直切分思路对应功能模块(先按业务紧密度划出功能组,再往里填内容)。自底向上是第三条路径:先识别类、后归纳出模块,对应用例驱动(先从具体用例推导出一堆类,再把这些类向上归纳聚合成模块)。第四条路径是拍脑袋:纯粹靠经验和灵感,想到哪”切”到哪,没有系统方法支撑。这四种思路的关键差异不在于”哪种更先进”,而在于切入方向和思维起点完全不同:自顶向下的两条路径都是从一个宏观框架出发往下填充,区别只在于框架是”层”还是”功能组”;自底向上的路径反过来,是从具体细节向上归纳出结构;拍脑袋则完全没有框架,是这四种思路中唯一不具备可复制性和可解释性的一种。理解这个分类框架的价值在于:它把第12-14章分别讲解的三种具体方法(功能模块划分、分层、用例驱动)统一放进了一张对比图里,让读者能清楚看到”这三种方法各自属于哪种思路、彼此的关系是什么”,而不是把它们当成三个互不相关的技巧孤立记忆——这正是第15章要综合运用这些思路、给出一套完整4步骤方法论的铺垫。

结构图

flowchart TB
    A["模块划分的4种思路"] --> B["自顶向下·水平切分\n分层(Layer)"]
    A --> C["自顶向下·垂直切分\n功能模块"]
    A --> D["自底向上\n用例驱动:先识别类、后归纳模块"]
    A --> E["拍脑袋\n纯靠经验和灵感,想到哪切到哪"]

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第15章《模块划分的4步骤方法——运用层、模块、功能模块、用例驱动》"15.1.1 自顶向下vs.自底向上,垂直切分vs.水平切分"节(源文件:_epub-src/OEBPS/text00018.html) - 结论依据:原文明确列出"自顶向下:水平切分思路——分层。垂直切分思路——功能模块。自底向上:先识别类、后归纳出模块的思路——用例驱动。拍脑袋:纯粹靠经验和灵感——想到哪'切'到哪"四种思路,直接支撑本卡片结论与结构图。 - 原始内容:作为架构师"看家本领"的模块划分技能,有如下几种思路:自顶向下。水平切分思路——分层。垂直切分思路——功能模块。自底向上。先识别类、后归纳出模块的思路——用例驱动。拍脑袋。纯粹靠经验和灵感——想到哪"切"到哪。