本文介紹了UML三元關(guān)聯(lián)實(shí)現(xiàn)Java代碼的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
三元關(guān)聯(lián)是指定一個(gè)事物對象與另兩個(gè)事物的對象相連接的結(jié)構(gòu)化關(guān)系
我理解這種關(guān)系,但我不知道如何實(shí)現(xiàn)顯示這三個(gè)類之間關(guān)聯(lián)的方法。
讓我們考慮以下示例
項(xiàng)目有許多使用特定編程的開發(fā)人員
發(fā)展語言
開發(fā)人員使用特定編程語言開發(fā)多個(gè)項(xiàng)目
在選定的項(xiàng)目中,一名開發(fā)人員僅使用一種編程語言
這三個(gè)類別之間存在三元關(guān)聯(lián)。
我已經(jīng)在互聯(lián)網(wǎng)上閱讀了關(guān)于這個(gè)問題的不同來源,但找不到解決方案
如何用代碼(Java)實(shí)現(xiàn)上述場景?
P.S-不僅如此,任何其他三元關(guān)聯(lián)編碼示例都是值得贊賞
推薦答案
您可以使用一個(gè)類來表示”項(xiàng)目“。此類具有:
–Map <Developer, Langage>
開發(fā)人員
一個(gè)表示”開發(fā)人員“的類。此類具有:
–Set<Langage>
語言
–Set<Projects>
項(xiàng)目
最后,一個(gè)類表示”語言“。
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;
}
這篇關(guān)于UML三元關(guān)聯(lián)實(shí)現(xiàn)Java代碼的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,