ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

在Java代码中使用UML三元协会

2019-07-01 10:49:24  阅读:279  来源: 互联网

标签:java oop uml class-diagram ooad


我目前在Code中实现三元关联时遇到了一些麻烦.
我得到二进制的,
但我不确定三元协会.

这是大学里的典型情景.

讲师可以向一个或多个学生讲授一个科目
学生只能从一位讲师那里学一门科目
讲师可以教一个学生只有一个科目

这三个类之间存在三元关联.

下面的UML类图中显示的这三个类之间的关系以及多重性都存在

enter image description here

我已经在互联网上阅读了关于这一点的不同来源,并且找不到解决方案

如何实现这三个类之间的关联?要么,
一般来说,在类之间实现关联的可能方法是什么(在java中)?

解决方法:

一如既往,这取决于.

实现关联类的常用方法是使用关联数组.在您的示例中,您(最终)有一个Lecturer / Subject的组合来访问学生列表.如果您的要求不同,您可以在提供教师时返回主题/学生列表.

使用数据库时,您将在表格教学中获得讲师/主题/学生的主键.这允许个人选择,如上所述.

我的一些伪代码:

class Teaching {
  private Hash lectRef; // assoc. array 

  public void addTeaching(Lecturer lect, Student stud, Subject subj) {
    if lectRef[lect.hash] == None { lectRef[lect.hash] = []; }  
    // if none, default an empty array here
    // lect.hash is a unique hash code for the Lecturer object

    lectRef[lect.hash].append((stud, subj); 
    // tuple of student/subject referenced

    // if you need other fast results (e.g. subjects per student or the like) you need to hash them here too
  }

  public [(Stud, Subj)] studSubj (Lecturer lect) {
    return lectRef[lect.hash];  
    // returns the array of student/subject tuples
  }

  // add other result operations like subjects per student as needed
}

标签:java,oop,uml,class-diagram,ooad
来源: https://codeday.me/bug/20190701/1346216.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有