gcb*_*fln 6 c# design-patterns class poco dto
我知道这里有很多关于 DTO 和 POCO 的讨论,但我真的找不到关于这个的讨论。是否有关于在没有构造函数与私有 setter 和构造函数的情况下编写 DTO 的规则?
示例 A:
public class Person
{
public int Id { get; set; }
public String Name { get; set; }
public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
示例 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; }
}
Run Code Online (Sandbox Code Playgroud)
这两种方法中的任何一种都被认为是反模式吗?为什么?我的意思是,我知道有人可能会支持不变性或锅炉拼盘和重构问题,但是有没有一种事实上的方法,官方的东西?
DTO 不应该是不可变的,因为主要目的是可序列化和反序列化。所以不变性并不重要。
但
可变亲
可变的缺点
不变的亲
不可变的缺点