【发布时间】:2011-03-03 20:18:44
【问题描述】:
好的,“胖”模型和事务脚本都解决了与保留业务逻辑的位置相关的设计问题。我做了一些研究,普遍认为将所有业务逻辑封装在模型中是可行的方法(主要是因为事务脚本可能变得非常复杂并且经常导致代码重复)。但是,如果我想在我的业务逻辑中使用第二个模型的 TDG,这将如何工作?与在另一个模型的业务逻辑中使用一个模型相比,事务脚本确实提供了一种更简洁、耦合更少的解决方案吗?
一个实际的例子......
我有两个类:用户和警报。当将用户实例推送到数据库时(例如,创建新的用户帐户),有一个业务规则也需要插入一些默认的警报记录(例如,默认的“欢迎使用系统”消息等)。我在这里看到两个选项:
1) 将此规则添加为 User 方法,并在此过程中创建 User 和 Alert(或至少 Alert 的表数据网关)之间的依赖关系。
2) 使用事务脚本,避免模型之间的依赖。 (此外,这意味着业务逻辑保留在“中性”类中,并且可以通过 Alert 轻松访问。不过,这在这里可能不太重要)。
然而,用户负责它自己的验证等,但是因为我们正在讨论涉及两个模型的业务规则,所以事务脚本对我来说似乎是一个更好的选择。有人发现这种方法的缺陷吗?
【问题讨论】:
标签: design-patterns oop model scripting transactions