0

STUDENTとLECTURERの2つのクラスを考慮して、C#で集約と合成をどのようにマッピングできるか教えてもらえますか。

私の質問がわかりにくいかもしれません。例として、VS クラス デザイナを使用して、クラス間の関連関係を生成しました。LECTURER と STUDENT_SOCIETY の 2 つのクラスを考えます。クラス デザイナは、次のコードを生成します。引用符

public class Lecturer
{
    private string Name;
    private string Specialization;

    public StudentSociety StudentSociety
    {
        get
        {

        }
        set
        {
        }
    }


}

public class StudentSociety
{
    private int Name;
    private string NoOfMembers;
}

同様に、集約と構成をどのようにモデル化できますか

4

2 に答える 2

1

より多くの情報が必要です。ドメインモデルを取得してUML図にマッピングしますか?通常、これは逆の方法で発生します(最初に図を示し、次にモデルをコードオブジェクトとして生成します)。これを行うためにC#または「バニラ」VisualStudioに組み込まれているものはありません。ただし、MS Visio(「プロフェッショナル」レベルのOfficeインストールの一部)は、図からコードに移動したり、VSと統合してこれを実行したりできます。最後にVisioを使用しましたが、「純粋な」UMLではありませんでした。ダイアグラムスキームの組み合わせから借用したダイアグラムシンボル。ただし、モデルの読みやすいグラフィック表現が得られ、そこで行った変更はコードオブジェクトとして再送信できます。

これらの間の関係を実際に決定する限り、それは一般に多対多であり、使用可能な1対多の関係の統一コンテキストは、「コース」または「サブジェクト」の「クラス」または「セクション」です。1つのコースには多くのセクションがあります。各セクションには、1人の講師と多くの学生がいます。同じ生徒が複数のセクションに参加でき、同じ教師が複数のセクションを教えることができます。つまり、講師と学生の両方が、教える/出席するセクションのリストを持つことができます(オブジェクトグラフの周りを任意の方向にナビゲートできる「双方向」ドメインモデルが必要な場合)。

于 2010-09-16T18:33:01.863 に答える
1

通常、コンポジションは永続的であり、あるクラスを別のクラス内に完全に含めることによって表されますが、集約にはある種の割り当てまたはリンクが含まれます。

したがって、講師が多数の学生の構成を担当すると仮定すると、次のようになります。

Public class Lecturer
{
    public class Student
    {
        string mName = "";
... etc.

一方、集計は次のようになります。

Public class Lecturer
{
    ... Some code ...
}

Public class Lecturer
{
    Student mStudent;

    public void setStudent(Student theStudent)
    {
        mStudent = theStudent
    }

... etc.

宿題の点数が取れたら教えてください... ;)

于 2010-09-16T19:14:35.973 に答える