我知道这里有很多关于DTO和POCO的讨论,但我真的找不到这个。在没有构造函数与私有setter和构造函数的情况下编写DTO是否有规则?
示例A:
public class Person
{
public int Id { get; set; }
public String Name { get; set; }
public int Age { get; set; }
}
例B:
public class Person
{
public Person (int id, String name, int age)
{
Id = id;
Name = name;
Age = age;
}
public int Id { get; }
public String Name { get; }
public int Age { get; }
}
这两种方法中的任何一种都被认为是反模式的吗?为什么?我的意思是,我知道有人可能会支持不变性或锅炉平台和重构问题,但是有没有事实上的方法,这是正式的吗?
答案 0 :(得分:1)
DTO不应是不变的,因为其主要目的是可序列化和可反序列化。因此,不变性并不重要。
但是
可变亲
可变缺点
不变的职业
不变的缺点
答案 1 :(得分:0)
示例B更好,因为它是不可变的。 DTO的目的是传输数据,因此无需更改数据。