服务对象、事务脚本和策略设计模式是否相同?

Are service object, transaction script and strategy design patterns the same?

我找不到 服务对象 设计模式的任何定义。

事务脚本设计模式

Organizes business logic by procedures where each procedure handles a single request from the presentation.

策略设计模式

Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.

他们是similar/equal吗?

这是服务层模式的定义:http://martinfowler.com/eaaCatalog/serviceLayer.html

服务层描述了系统的用例。这些用例以事务脚本的方式实现。然而,事务脚本模式是一个不同的野兽——它是一种组织系统业务逻辑的方式。所以虽然相似,但是用意不同。您可以将业务逻辑实现为 Active Record 或领域模型,但服务层仍类似于事务脚本。

策略模式旨在封装在系统用例内部使用的可互换算法。

我强烈建议阅读经典 "Patterns of Enterprise Application Architecture" 书籍以更好地掌握这些模式。