Tôi có câu hỏi về việc thực thi quy tắc kinh doanh thông qua mẫu đặc điểm kỹ thuật. Hãy xem xét ví dụ sau:Trợ giúp triển khai mẫu thông số kỹ thuật
public class Parent
{
private ICollection<Child> children;
public ReadOnlyCollection Children { get; }
public void AddChild(Child child)
{
child.Parent = this;
children.Add(child);
}
}
public class Child
{
internal Parent Parent
{
get;
set;
}
public DateTime ValidFrom;
public DateTime ValidTo;
public Child()
{
}
}
Quy tắc kinh doanh phải thực thi rằng không thể có trẻ trong bộ sưu tập có thời hạn hiệu lực giao cắt với nhau.
Vì vậy, tôi muốn thực hiện một đặc tả sau đó được sử dụng để ném ngoại lệ nếu một đứa trẻ không hợp lệ được thêm VÀ cũng có thể được sử dụng để kiểm tra xem quy tắc có bị vi phạm TRƯỚC KHI thêm con hay không.
Giống như:
public class ChildValiditySpecification
{
bool IsSatisfiedBy(Child child)
{
return child.Parent.Children.Where(<validityIntersectsCondition here>).Count > 0;
}
}
Nhưng trong ví dụ này đứa trẻ truy cập vào cha mẹ. Và với tôi điều đó dường như không chính xác. Phụ huynh đó có thể không tồn tại khi đứa trẻ chưa được thêm vào phụ huynh. Làm thế nào bạn sẽ thực hiện nó?
Đó có thể là một khả năng. Nhưng tôi chỉ tự hỏi nếu tôi đang sử dụng mô hình này đúng cách ... Sẽ không có hiệu lực là duy nhất khi không có cha mẹ? – Chris