작업은 작업 추적을 지원하는 프로젝트 계획 클래스 라이브러리를 디자인하는 것입니다 (MS 프로젝트 작동 방식과 유사). 이 클래스 라이브러리에는 Task
오브젝트가 있습니다 (다른 것들 중에서)..NET 개체 계층 구조 - 이벤트 또는 이벤트가 발생하지 않음
Task
개체 중 다른 EstimatedHours
(Double
) StartDate
(DateTime
) 및 EndDate
(DateTime
) 특성을 갖는다. Task
개체는 하나의 부모 Task
과 여러 자식 Task
개체를 가질 수 있습니다. EstimatedHours
, StartDate
및 EndDate
Task
의 하위 항목 (상위 항목)은 하위 항목의 속성에 따라 달라집니다. 부모 Task
의 StartDate
은 자식의 가장 오래된 StartDate
입니다. 부모 Task
의 EndDate
은 자식의 최신 EndDate
입니다. 부모 Task
의 EstimatedHours
은 자녀의 EstimatedHours
의 합계입니다. 따라서 자식이있는 Task
에서 이러한 속성을 변경하는 것은 무효합니다.
부모가있는 작업에서 EstimatedHours, StartDate 또는 EndDate가 변경되는 유스 케이스를 어떻게 처리하겠습니까? (부모의 속성은 자식을 반영하므로 변경 내용을 적절하게 반영하도록 부모의 속성을 조정해야 할 수 있습니다)
하나의 옵션은 각 속성이 변경 될 때 이벤트를 갖는 것입니다. 부모 Task
은 바로 그 자식 인 Task
개체에서 이러한 이벤트를 수신하고 해당 이벤트가 발생할 때 해당 속성을 적절하게 변경합니다. 이것은 좋은 접근 방법입니까 아니면 더 좋은 방법입니까? 당신은 어떻게 될까요?
Public Class Task
Private mChildren As List(Of Task)
Private mEndDate As DateTime = DateTime.MinVlue
Public Property EndDate() As DateTime
Get
Return mEndDate
End Get
Set(ByVal value As DateTime)
mEndDate = value
'What to do here?
End Set
End Property
Private mEstimatedHours As Double = 0.0
Public Property EstimatedHours() As Double
Get
Return mEstimatedHours
End Get
Set(ByVal value As Double)
mEstimatedHours = value
'What to do here?
End Set
End Property
Private mStartDate As DateTime = DateTime.MinVlue
Public Property StartDate() As DateTime
Get
Return mStartDate
End Get
Set(ByVal value As DateTime)
mStartDate = value
'What to do here?
End Set
End Property
End Class