gpt4 book ai didi

c# - 将我的 DTO 暴露给认为不正确的 View 吗?

转载 作者:太空狗 更新时间:2023-10-30 00:12:06 26 4
gpt4 key购买 nike

在过去的几周或几个月里,这个问题一直萦绕在我的脑海中,我真的不知道什么是最好的解决方案。

通过 MVVM 模式,我们使用 View 模型将数据公开给 View 。例如,如果我想向用户显示产品的详细信息,我将在 View 模型中创建某些属性并填充它们。然后通过绑定(bind), View 将能够从这些属性中获取数据。像这样:

 <StackPanel>
<TextBlock Text="Prodcut Name:" FontWeight="Bold" />
<TextBlock Text="{Binding Path=ProductName}" />

<TextBlock Text="Price:" FontWeight="Bold"/>
<TextBlock Text="{Binding Path=Price}"/>

<TextBlock Text="Added Date:" FontWeight="Bold" />
<TextBlock Text="{Binding Path=Date}"/>
</StackPanel>

在 View 模型中,我将检索要显示的数据。我将像产品 DTO 一样获取此数据,它将在 View 中具有所需的属性。

 this.productDTO = getData();

所以我的问题是,我们可以直接从 View 模型绑定(bind)到 dto 吗?查看模型:

    private ProductDTO product;

public string ProductName
{
get { return this.product.Name; }
set { this.product.Name = value; }
}

public string Price
{
get { return this.product.Price; }
set { this.product.Price = value; }
}

我认为暴露 DTO 不是一件好事..但如果它能让我不必将所有属性从 DTO 映射到 View 模型......

最佳答案

如果您不需要“塑造”您的 DTO 来绑定(bind)您的 View ,那么将您的 DTO 直接暴露给您的 View 绝对没有错。如果需要,您可以随时在将来的某个时候引入 View 模型。

您还可以使用像 mini-ViewModel(I describe on my blog)这样的模式来添加本地化 View 模型来塑造模型的各个部分。

像您所做的那样将 DTO 包装在 View 模型中,添加的代码不会提供任何好处。它会增加代码库的大小和出现错误的风险。

KISS - 保持简单!

关于c# - 将我的 DTO 暴露给认为不正确的 View 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7553933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com