UML三元关联实现Java代码

2022-06-30 00:00:00 class oop java uml ooad
三元关联是指定一个事物对象与另两个事物的对象相连接的结构化关系

我理解这种关系,但我不知道如何实现显示这三个类之间关联的方法。

让我们考虑以下示例

  • 项目有许多使用特定编程的开发人员 发展语言
  • 开发人员使用特定编程语言开发多个项目
  • 在选定的项目中,一名开发人员仅使用一种编程语言

这三个类别之间存在三元关联。

我已经在互联网上阅读了关于这个问题的不同来源,但找不到解决方案

如何用代码(Java)实现上述场景?

P.S-不仅如此,任何其他三元关联编码示例都是值得赞赏

解决方案

您可以使用一个类来表示"项目"。此类具有:

-Map <Developer, Langage>开发人员

一个表示"开发人员"的类。此类具有:

-Set<Langage>语言

-Set<Projects>项目

最后,一个类表示"语言"。

Class Project {
    Map<Developer, Language> developers = new HashMap<>();

    public void add(Developer developer) {
        developers.put(developer, developer.getLanguage());
        developer.registerOn(this);
    }

Class Developer {

    private Set<Language> languages;  
    private Set<Projects> projects;

    public boolean developIn(Language language) {
       return languages.contains(language);
    }

    public void registerOn(Project project) {
       projects.add(project);
    }
}

Enum Language {
    JAVA,
    PHP;
}

相关文章