- 你手里有一个“方法”。
- 它击中了 Db。
- 根据方法的实现,它可能是加载、保存、删除一些实体。
你需要把这个方法放在某个地方;您的选择是存储库或业务逻辑。
问题: 此方法的哪些属性使其成为业务逻辑的一部分,以便您将其放置在业务逻辑层中?
如果我换个说法:你如何决定一个方法应该放在“业务逻辑”还是“存储库”?
你需要把这个方法放在某个地方;您的选择是存储库或业务逻辑。
问题: 此方法的哪些属性使其成为业务逻辑的一部分,以便您将其放置在业务逻辑层中?
如果我换个说法:你如何决定一个方法应该放在“业务逻辑”还是“存储库”?
您的存储库应该只执行简单的 CRUD 操作(例如插入、选择、删除等)。如果它做得更多,它属于业务逻辑。
您可以有一个服务层来执行业务逻辑,然后调用您的存储库,但您的存储库应该是“愚蠢的”,只做 CRUD。
- 它击中了 Db。
如果该方法访问数据库,无论是执行 SQL、从 O/R 映射器查询还是任何直接与持久性相关的东西,它都应该在持久层中,而不是在业务层中。
它可能在一个 Repository 实现中,一个 DAO,你可以命名它,但绝对是一个数据访问层类。
我更喜欢将存储库调用作为基本的 CRUD 操作
具有业务逻辑的代码将在 b.logic 层。该层可以使用 Repo 调用来实现它所追求的目标
一个更好的方法,我适合的是将其视为 3 层
工作流或事务脚本层 业务逻辑层 存储库层
Repo 调用之间的工作流协调并将数据传递给业务逻辑层以执行其任务