我正在寻找 Java 类设计中的最佳策略。我正在使用 JSF 2.1,基本上我有一个类可以下订单并从 Web 服务中检索。
- 如果使用此类出错,我想提交事务或回滚。
就班级设计而言,我可以采取什么最佳方法来解决这个问题。我需要使用嵌套类设计吗?我至少有 15 种方法必须协同工作,以确保即使其中一种方法失败,事务也会回滚。任何指导表示赞赏。
JSF 是一种视图技术。如果你做对了,它根本不应该参与交易。
JSF 视图应该与控制器对话。控制器应该具有对服务的引用,该服务是了解工作单元和事务的对象。该服务编排模型对象、持久性对象和其他服务来完成用例。
获取数据库连接和提交或回滚事务的逻辑属于服务。
如果您使用面向方面的编程,这很容易做到。(这就是 Spring 的做法。)
view--->controller--->service--+--->persistence
|
+--->model
它被称为分层设计。当我绘制它们时,依赖项应该遵循箭头。模型和持久性不了解服务、控制器或视图。