gpt4 book ai didi

poco - 实现数据传输对象或 POCO 时的最佳实践是什么?您的 POCO 应该是什么样子?

转载 作者:行者123 更新时间:2023-12-02 12:17:26 26 4
gpt4 key购买 nike

以下哪项是实现 poco 的最佳方式?

选项 1:

public class PocoOption1
{
public PocoOption1(int val1,string val2)
{
Val1=val1; Val2=val2;
}

public int Val1{get;private set;}
public int Val2{get;private set;}
}

选项 2:

public class PocoOption2
{
public int Val1{get;set;}
public int Val2{get;set;}
}

每种方法的潜在优点是什么?有关系吗?有人说 DTO 应该只设置一次。这是规则还是只是意见?

最佳答案

选项略有不同。选项 1 允许您仅设置 Val1、Val2 一次。选项 2 允许您设置和重置这些值。

总的来说,我是公共(public)默认构造函数的粉丝。它使 API 更容易使用。 Krzysztof Cwalina 和 Brad Abrams 在《框架设计指南》一书中对此进行了详细讨论。以下是亮点:

  • 使用“创建、设置、调用”模式。有一个不带参数的默认构造函数。然后允许在对象上设置属性(以任何顺序)。然后允许调用方法。
  • 默认构造函数是对象构造的规范方法。这将是用户尝试的第一个选项。
  • 强制用户在构建时选择参数可能很困难。此外,某些参数可能是可选的。
  • 让您的对象在有限的时间内处于无效状态。抛出异常来传达 API 滥用情况。 (如果一个对象有两个依赖项,那么如果用户尝试在没有必要设置的情况下调用方法,则抛出 InvalidOperationException。)

在我看来,选项 2 是最佳选择。

关于poco - 实现数据传输对象或 POCO 时的最佳实践是什么?您的 POCO 应该是什么样子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/636030/

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