领域设计
所有的领域应该有一个抽象基类,而且是一个泛型
public abstract class Entity<T>
{
public T Id{get;protected set;}
}
DDD中有一个很重要的概念,叫作Object Value Type。会把一个Aggregate里的对象类型看作是值类型。这样做一方面是减少Aggregate对关系的依赖,一方面可以很好判断Aggregage的状态。同样也是一个泛型抽象基类,如果一个Object类型的对象想要被当作值类型处理,那就继承这个泛型抽象基类。
object value type怎么理解
public class Order
{
public List<OrderLine> Lines{get;set;}
public Address Address{get;set;}
}
public class OrderLine:ValueObject<OrderLine>,
public class Address:ValueObject<Address>
这就把原来是引用类型的对象OrderLine和Address转换成值类型了,这就减少了对象之间的相互依赖。 ``` public abstract class ValueObject where T : ValueObject { ///