“Analysis Patterns”的第三章有这么一句:
The preceding patterns are structural and are used to make records of our observations.
2004(机械工业出版社)中译本的译文为:
2020(人民邮电出版社)中译本的译文为:
标红的structural,2004中译本译为“可加以组织”,2020中译本以为“以结构化的方式”。两个意思差不多,似乎2020中译本的译文更贴近原文。
但是,这两个翻译都不对,structural不能译为“结构化”。
我们要注意区分这两个词:
structural:结构的,结构方面的
structured:结构化的,有结构的,有组织的
下图是GoF的“Design Patterns: Elements of Reusable Object-Oriented Software”的原文:
书中用的词是structural,结构型(的模式),不能用structured,结构化(的模式)。难道行为型的、创建型的模式就不是结构化的了?大家都是按照模板写出来的嘛,都是结构化的。
这里的structural意思是模式的内容是和结构相关的。Fowler也使用structural,应该是借用GoF的分类。
因此,更合适的译文是:
The preceding patterns are structural and are used to make records of our observations.
前面的模式是结构型的,用于记录我们的观察。
下图是Dahl, Dijkstra, Hoare的“Structured Programming”(1972)截图:
这个用的就是structured (programming),意思是代码是结构化的、有组织的,并不是说这个代码是描述结构的。
这个地方的问题和我之前的“《分析模式》漫谈”文章中提到过的“Unified Method(统一方法)”类似(参见:《分析模式》漫谈03- Unified Method并不是RUP)。想到一个熟悉的用语,误以为就是那个,然后就写上去了。