您知道,对于 API 项目,有许多模式可以检索数据并向客户端提供数据。 Controller <-> Service <-> Dao
模式是这些模式之一。
从服务层返回任何类型的对象都可以吗?还是服务层返回对象必须是相关实体?
例如,我们有User
, UserService
, UserDao
。
UserService 返回类型应该是 User 还是任何类型的对象都合适?
服务层中的逻辑操作迫使我使用其他对象作为返回类型。
这种情况的最佳实践是什么?
最佳答案
我发现我需要 3 种类型的对象来保持事情的可管理性(我仍在努力想出一个合适的命名策略)。有时这样做是有益的:
- 从数据层返回的对象 - 这些对象将由您的数据实现决定。例如,如果您决定以不同方式存储数据,它们可能会发生变化。也许您决定序列化一个对象并将其存储为 JSON,而不是将其存储在单独的表中,或者您从 SQL 迁移到 NOSQL。
- 从域层返回的对象 - 这些是应用程序对象,应该对您的域进行建模。它们不应包含任何特定于您的数据实现的内容。
- 发送到 API 和从 API 发出的对象 - 使用单独的序列化对象来塑造您的 API 非常有用。这意味着您可以调整 API,而无需触及业务逻辑。在某些项目中,我有 v1、v2 等多个版本的 API 对象。
关于java - 服务层返回对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43888351/