私はワークフロー階層用のストレージソリューションを作成しています。データコンテナ対行動と結合したオブジェクト
画像を単純化するために、ワークフローとワークフローステップの2種類のオブジェクトがあります。
WorkflowStepはワークフローの下に階層的に配置されていますが、これらのオブジェクトはデータコンテナとしてのみ表示されるため、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) {
}
}
推理(論理的にそれが収まるにもかかわらず)これらのオブジェクトは純粋にデータコンテナとして表示され、それらが対象であってもよいことです後で変更する必要があり、これらのオブジェクトの記憶域をオブジェクト自体から切り離して保持したいと考えています。
もちろん他の代替は、このような何かを行うには、次のようになります。
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