假设有一个在两个层次上开发的库:一个核心,一个低层次和一个高层次。我的设计侧重于减少两者之间的耦合。封装枚举或不?
其中一个高层次的例程接受枚举(例如,FOO = 0,BAR = 1,BAZ = 2)。该枚举由低级例程直接用于其最终目的。
为了设计此,我有三种选择:
- 高电平例程接受包封到高电平模块枚举,并且翻译一到一个高电平枚举到低级别的枚举值。优点:降低耦合。缺点:我有点重复我自己
- 高级别例程接受低级模块的枚举值,并“按原样”传递它。优点:少打字,减少重复。缺点:耦合度更高。
- 我创建了一个“枚举模块”,它是外部的,两个级别都依赖于这个枚举模块。优点:概念清晰。缺点:Uber全部模块的枚举不在代码附近。
您对此案有任何经验吗?我会选择1,因为它会减少耦合,但我也想听听你的经验。