워크 플로 계층에 대한 저장소 솔루션을 작성 중입니다.데이터 컨테이너와 동작이 결합 된 개체
그림을 단순화하기 위해 워크 플로와 워크 플로우 스텝의 두 가지 유형의 개체가 있습니다.
WorkflowStep은 워크 플로 아래에서 계층 적으로 제공되지만 워크 플로는 이러한 개체를 데이터 컨테이너로보기 때문에 WorkflowStep을 집계하지 않습니다.
그래서이 다음과 같은 클래스로 날 나뭇잎 :
이public class Workflow : Node {
public string UID;
public string parentID;
}
public class WorkflowStep : Node {
public string UID;
public string parentID;
}
public class WorkflowEngine {
public void Store(Workflow wf) {
}
public void Store(WorkflowStep wfs) {
}
}
(논리적으로 그에 맞는에도 불구하고) 워크 플로우 내에서 WorkflowStep를 집계하지 않는 추론 이러한 개체는 순수한 데이터 컨테이너로 간주하고 그들이 대상이 될 수 있다는 것이다 나중에 변경하기 위해 우리는 이러한 객체의 저장소를 객체 자체와 분리 된 상태로 유지하려고합니다.
물론 다른 대안이 그런 짓을하는 것입니다 :
public class Workflow : Node {
public List<WorkflowStep> steps;
public string UID;
public string parentUID;
public void Store() { }
}
public class WorkflowStep : Node {
public string UID;
public string parentID;
public void Store() { }
}
중 접근 방식의 장점과 단점은 무엇입니까? 두 가지 디자인에 대해 이야기하는 자료가 있습니까?
정말 .. 데이터가 작동되는 방식과 전체적인 그림에 맞는 방식에 따라 다릅니다. – Ankur