我有一个具有 3 层的应用程序:GWT-RPC、业务和 DAO 在每一层中我都有不同的 bean。例如,对于用户,我有 UserRPC(用于 UI)、User(业务)和 UserDTO(持久化)。在每一层更改时,我都会重新转换对象。
主要问题是枚举。各个层的枚举完全相同,但我需要复制它们以保持层的独立性。
有什么建议吗?
我有一个具有 3 层的应用程序:GWT-RPC、业务和 DAO 在每一层中我都有不同的 bean。例如,对于用户,我有 UserRPC(用于 UI)、User(业务)和 UserDTO(持久化)。在每一层更改时,我都会重新转换对象。
主要问题是枚举。各个层的枚举完全相同,但我需要复制它们以保持层的独立性。
有什么建议吗?
(简短回答)
如果它们确实相同,则您要创建一个commons
项目/ jar。这里里面是整个应用程序共有的所有东西,例如实用程序类、枚举等。
(长答案)
考虑系统的整体架构,任何层都不需要重复数据。如果发生这种情况,则意味着系统设计存在缺陷,紧耦合的场景可能即将出现。这就是为什么在开发软件工程师时经常(应该)在执行任何实现之前记录接口(合同/api)的部分原因。一旦这些接口被批准并且没有重复的机会,实际的实施就可以开始了。这将捕获在应用程序的每个单独层创建的 X 个枚举的场景,这些枚举是常量。此外,请记住,对于枚举,如果您的业务层中的某些更改会影响枚举,您必须重新编译代码并重新部署。
各个层的枚举完全相同,但我需要复制它们以保持层的独立性。
数据重复从来都不是一个好主意。您如何确保对一个枚举的更新反映在其他层中?您可能应该创建一个实用程序层,将所有常见类放在那里。