【发布时间】:2011-08-24 01:07:36
【问题描述】:
我有一个 MVP 应用程序,它有以下几层:
- 演示文稿
- 服务
- 商务
- 数据
在表示层和服务层之间我使用 DTO。
假设我使用 L2S 或 EF 从数据库中获取数据。我得到一个可能是 int 或 datetime 等的数据类型。但表示层需要它作为字符串或某种格式。这具体发生在哪里?
服务会这样做吗? DTO?主持人?其他地方?
【问题讨论】:
标签: architecture
我有一个 MVP 应用程序,它有以下几层:
在表示层和服务层之间我使用 DTO。
假设我使用 L2S 或 EF 从数据库中获取数据。我得到一个可能是 int 或 datetime 等的数据类型。但表示层需要它作为字符串或某种格式。这具体发生在哪里?
服务会这样做吗? DTO?主持人?其他地方?
【问题讨论】:
标签: architecture
有两种类型的转换。
将数据库字段转换为有用的数据模型对象(可能在您的业务层中),并将您的模型数据转换为某种表示对象。
前者会将数据库中的 BIT 字段转换为模型中的 Boolean。
后者会将DateTime 转换为演示文稿中的可见字符串。
这两种转换发生在数据提取点和呈现呈现点。
【讨论】:
但是表示层需要它 字符串或某种格式。
如果表示层 (UI) 需要某种格式(否则它无法互操作),那么您别无选择,只能转换它 - 但转换很可能是 UI具体的;在这种情况下,最好的选择(为了灵活性/关注点分离)是构建一个位于 UI 和它获取数据的地方之间的特定于 UI 的适配器/代理/外观(进行转换)。
这适用于您可以控制整个系统(UI 除外)的情况。
我读到你的问题的一个可能的微妙之处不是 UI 需要它以特定格式,而是它,我们应该说“强烈喜欢”它以特定格式吗?在这种情况下,您将在 UI 中构建适配器/代理。
这适用于您控制 UI 而不是应用其余部分的情况。在您的场景中听起来并非如此 - 但值得一提。
【讨论】: