什么时候使用
当名字很好但是他们不能很好地配合时。
组件可以按照各种标准进行分组,包括物理性质、经济性、感情色彩、社会性和软件中最常用的功能。Photo 框架根据感情色彩方面分组,而产品则根据经济动机分组。
沙发和电视留在同一个房间,根据功能标准分组在一起,因为它们具有相同的功能或目的,均用于休闲。
在软件中,我们倾向于按功能对组件进行分组。列出你的项目文件,你可能会看到像 controller/、models/、adapters/、templates/ 等等。
然而,有些时候,这些分组可能不太合理,这将是重新评估模块结构的最佳时间。
示例: 使用策略进行分组
用于自动化文档操作的库根据代码、lints 描述文件(保证格式正确)生成规范文档(比如 API 蓝图)并上传到云中(比如 S3 )。
根据文件格式,将自动进行各种后续决定。选择 API 蓝图将会选择不同的 linter,不同的测试器和不同的 API 元素转换器。
这里基于一个输入来组合所有这些不同的功能的关键词是策略(strategy)。此后,该库中包含一个将文件格式、linter、文档测试器和存储提供程序组合在一起的模块或者命名空间,被称为Strategy(策略)。
这使得库可以将业务核心策略中的普通文件操作(如上传者、解析器和命令行等)分开。