在Java应用程序中跨层传递枚举



我有一个有三层的应用程序:GWT-RPC、Business和DAO每一层我都有不同的豆子。例如,对于一个用户,我会有UserRPC(用于UI)、User(用于业务)和UserDTO(用于持久化)。在每一次图层更改时,我都会重新转换对象。

主要问题是枚举。枚举在各个层中完全相同,但我需要复制它们以保持层的独立性。

有什么建议吗?

(简短回答)

如果它们确实相同,那么您需要创建一个commons项目/jar。里面是整个应用程序通用的所有东西,如实用程序类、枚举等。

(长答案)

考虑到系统的整体体系结构,不需要在任何层中都有重复的数据。如果发生这种情况,就意味着系统设计中存在缺陷,可能会出现紧密耦合的情况。这也是为什么在开发软件时,工程师经常(应该)在执行任何实现之前记录接口(合同/api)的部分原因。一旦这些接口获得批准,并且几乎没有重复的机会,就可以开始实际实施。这将捕获在应用程序的每一层创建X个枚举的场景,这些枚举是常量。此外,请记住,使用枚举时,如果业务层中的某些内容发生变化,将影响枚举,则必须重新编译代码并重新部署。您必须注意不要将枚举用作所有系统常量的全部,因为这是一个完全不同的问题,您可能需要处理。

各层的枚举完全相同,但我需要复制它们以保持层的独立性。

重复数据从来都不是一个好主意。如何确保对一个枚举的更新反映在其他层中?您可能应该创建一个实用程序层,将所有公共类放在那里。

最新更新