0

有人可以告诉我如何在 c# 中映射聚合和组合,考虑到两个类 STUDENT 和 LECTURER。

我的问题可能不清楚。例如,我使用 VS 类设计器生成类之间的关联关系。考虑 2 个类 LECTURER 和 STUDENT_SOCIETY。类设计器生成以下代码。块引用

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# 或“vanilla”Visual Studio 中没有内置任何东西可以做到这一点。但是,MS Visio(“专业”级 Office 安装的一部分)可以从图表到代码并返回,并与 VS 集成以执行此操作。上次我使用 Visio,它不是“纯粹的”UML;从图表方案的组合中借用的图表符号。但是,它将为您提供模型的可读图形表示,并且您在那里所做的更改可以作为代码对象重新发出。

就实际确定它们之间的关系而言,它通常是多对多的,可用的一对多关系的统一上下文是“课程”或“主题”的“班级”或“部分”。一个课程有很多部分。每个部分有一位讲师和许多学生。同一个学生可以参加多个部分,同一个老师可以教多个部分。这意味着讲师和学生都可以拥有他们教授/参加的部分的列表(如果您需要一个“双向”域模型,您可以在对象图周围的任何方向上导航)。

于 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 回答