我是否应该在视图模型(UI层)和域模型(业务层)中使用相同的枚举定义

本文关键字:模型 定义 枚举 业务 视图 UI 是否 | 更新日期: 2023-09-27 17:57:01

我读过关于分离域模型和用于渲染视图的模型的文章。据我了解,对于每个领域模型,我可以(推荐)在我的 MVC/UI 层创建一个模型,同时从业务层引入数据,我填充我的 UI 模型。int,浮动都很好,我只是填充它们。

我应该如何处理枚举?

我是否应该在我的 UI 层中一起创建一个不同的枚举定义,然后在将信息从我的业务层带到 UI 层的同时映射枚举? 还是在我的业务层中定义的相同枚举也可以在我的 UI 层中使用?

我是否应该在视图模型(UI层)和域模型(业务层)中使用相同的枚举定义

使用相同的

枚举。 这将减少混乱,只给你一个地方来查找东西,并在你需要进行更改时更容易。

模型/视图分离对于保持逻辑不纠缠很有用,但使用一组枚举不会妨碍这一点。

我会做的一个例外是,如果您需要防止代码的不同部分共享标头,因为您希望进行大量条件编译或链接,但听起来不像这里的情况。

好吧,实际上枚举是 int(大多数时候)快捷方式。

如果您想

使用自动下拉列表作为枚举并更改文本,或者如果您想将 DAL 作为项目"关闭",例如,制作类似的东西可能会很有用

public enum ADalEnum : int
{
  One = 1,
  Two = 2,
  Three = 3
}

public enum MappedEnum : int
{
  One_Little_Indians = ADalEnum.One,
  Two_Little_Indians = ADalEnum.Two,
  Three_Little_Indians = ADalEnum.Three,
}

所以它将是"相同的"。