나는 각 'ProductionLine'
여러 'Stages'
이있는 제약 회사를위한 소프트웨어를 개발하고, 각 스테이지 'Machines'
다 대다 관계에 대한 클래스를 어떻게 디자인해야합니까?
는 이제 단계와 그 기계를 (의 흔들림을 멀리 ProductionLine을두고 기록하는 세 개의 테이블을 유지하고 가정에 여러 가정합시다 토론).
(2) 기계 (생산 공장이 가질 수있는 모든 가능한 기계를 나타내는 기본 데이터) (
(1) 단계 (모든 생산 라인이 가질 수있는 모든 가능한 단계를 나타내는 기본 데이터) 3) StageMachines (무대에 할당 된 기계 수를 나타냄)
무대는 여러 대의 기계를 가질 수 있으며 기계는 여러 단계의 일부가 될 수 있습니다. 그러나 Machine 클래스에는 Stages 목록이 없어야하며, bussiness problem 도메인과는 관련이 없습니다.
가 나는 다음과 같은 클래스를 디자인했다 :
public class Stage
{
private int _stageId;
public int StageID
{
get { return _stageId; }
set { _stageId = value; }
}
private string _stageName;
public string StageName
{
get { return _stageName; }
set { _stageName = value; }
}
private List<Machine> myVar;
public List<Machine> Machines
{
get { return myVar; }
set { myVar = value; }
}
public static bool Save(Stage stage)
{
//save code goes here...
}
}
public class Machine
{
private int _machineId;
public int MachineID
{
get { return _machineId; }
set { _machineId = value; }
}
private string _machineName;
public string MachineName
{
get { return _machineName; }
set { _machineName = value; }
}
public Machine()
{
}
public Machine(int id, string name)
{
_machineId = id;
_machineName = name;
}
}
지금 나는 dillemma에 직면하고있다 :
(1) 나는 무대를 만드는 오전 때, 나는 모든 시스템에서 일부 기계를 선택하고 저장해야 자료. 어떻게 그 사촌 나는 다음과 같은 코드를 작성 할 수 있어야한다, 내 코드에서이를 처리해야합니다
Stage s = new Stage();
s.Machines.Add(new Machine(1, "Machine#1"));
s.Machines.Add(new Machine(2, "Machine#2"));
s.Machines.Add(new Machine(3, "Machine#3"));
Stage.Save(s);
(2) 나는 내 코드에서이 대다 관계를 유지하는 방법? 'StageMachine'
이라는 세 번째 클래스를 만들어야합니까? 그렇게 할 경우 Stage 객체를 만들 때 머신을 어떻게 저장해야합니까?
아무에게도 해결책을 줄 수 있습니까?
*** 스테이지의 머신을 검색 할 때 nTier에서 어떻게 매핑해야합니까?
What is a good design pattern in C# for classes that need to reference other classes?
이 링크는 클래스 설계 문제에 대해 설명하지만, 저장에 응답하고 NTier 디자인에 내 Stage 객체의 기계의 메커니즘을 검색하지 않습니다.
번호 사촌 : 내 솔루션과 같이 될 것입니다. 그러나 기계 객체를 만들 때 어떤 객체가 속한 것인지 알 필요가 없습니다. –
나중에 알 필요가 있다면 Machine.GetStages() 메서드를 호출하여 List을 반환해야합니다. –
예. Stage 객체를 만들 때. –