知识卡片
事务脚本与组合方法模式
内容
服务对象承载全部业务逻辑、把业务服务按顺序分解为多个子任务再组合为完整过程,即事务脚本(transaction script)——“使用过程来组织业务逻辑,每个过程处理来自表现层的单个请求”。Fowler 提醒不要盲目排斥它:许多问题本身简单,简单方案开发更快、运行更快。即便用事务脚本,也可用 Kent Beck 的组合方法(composed method)模式改善可读性:把程序划分为方法、每个方法执行一个可识别任务、方法内所有操作处于相同抽象层,自然产生许多只含少量代码的小方法。发散:不必为“面向过程”羞愧;简单业务下贫血模型+事务脚本在性能与可读性上有明显优势,复杂度上来后才需要重构。
参考来源
- 位置:《解构领域驱动设计》附录A A.1.3(源文件:_epub-src/OEBPS/034.xhtml)
- 结论依据:原文引用 Fowler 为事务脚本正名,并给出 Kent Beck 的组合方法模式三条要点。
- 原始内容:不管你是多么坚定的面向对象的信徒,也不要盲目排斥事务脚本……把程序划分为方法,每个方法执行一个可识别的任务;让一个方法中的所有操作处于相同的抽象层……