-2

私はこの2つのクラスを持っていますが、誰かが私が間違っていたと言いました。

class Employee {
private int employeeID;
private String employeeName;
private Seat employeeSeat;
}

これは、Seat クラスと関係がある私の従業員クラス用です。

class Seat {
private int seatID;
private String seatCode;
private Employee occupant;
}

また、座席に従業員属性を追加しました。これは、座席を取得するときに、その座席の現在の占有者を特定する必要があるためです。従業員と同じことです。それを取得するときに、従業員の現在の座席を特定したいと考えています。さて、従業員には座席属性があり、座席には従業員属性があるため、ひどい設計だと彼らは言いました。

4

2 に答える 2

2

それが何を意味するのかを詳細に説明するのは間違っていると言った人に尋ねなければならない. そうかもしれないし、そうでないかもしれませんが、それは全体的なシステム アーキテクチャとオブジェクト間を移動するための要件に依存します。

EmployeeSeatおそらく、それらが意味することは、関係とその関係に関連する詳細 (開始日、終了日、時間など) を保持するためのオブジェクトが必要だということです。しかし、カーディナリティ制約の適用など、他の問題について心配する必要があります (1 人の従業員が複数の座席を持つことができるか、またはその逆か)。

于 2016-06-28T01:13:28.900 に答える
0

実行時にリレーションシップの一方の側を別のエンティティを指すように更新し、もう一方の側を更新するのを忘れる (モデルが一貫性のない状態のままになる) リスクは、一般に、一方向の関連付けを操作するわずかな不都合よりもはるかに悪いと考えられているためです。 . ただし、常に可能であるとは限りません。

于 2016-06-28T12:08:03.777 に答える