Association de diagramme de classes UML implémentée dans les classes Java


J'ai les associations de classe UML suivantes qui veulent contrôler si je suis bon ou mauvais (les méthodes ne sont pas nécessaires ici):

entrez la description de l'image ici

Nr 1:

import java.util.*;


public  class Dictionary {

    private DictEntry[] entry;

   ArrayList<DictEntry> book = new ArrayList<DictEntry>();

   public Dictionary(){
       entry = new DictEntry[3];
       entry[0] = new DictEntry("Abc");
       entry[1] = new DictEntry("Def");
       entry[2] = new DictEntry("Ghi");

       book.add(new DictEntry("Bla"));
       book.add(new DictEntry("Blub"));
       book.add(new DictEntry("Bli"));
   }

}

public class DictEntry{

    private String entry;

    public DictEntry(String entry) {
        this.entry = entry;

    }

}

Le premier et le troisième diagramme sont les mêmes!

Ma question concerne l'agrégation et la composition si je suis ici et si je ne suis pas,que puis-je ajouter?

Agrégation:

public  class Dictionary {

    private DictEntry entry;


}


public class DictEntry{



}

Composition:

import java.util.*;


public  class Dictionary {

    private DictEntry[] entry;


}

DictEntry:

public class DictEntry{
}

La seule question que j'ai est de savoir comment le deuxième diagramme si j'ai le premier, la direction du dictionnaire n'est pas clair dans ma mises en œuvre.

Author: James Rich, 2013-10-26

1 answers

Tu t'es trompé mec, No1. la première association est comme ceci

public  class Dictionary {
private DictEntry d0,d1,d2;
}
public class DictEntry{}

, Le second serait comme ceci

private DictEntry d0,d1,d2;
}
public class DictEntry{
private Dictionary owner;
}

Le 3ème. l'un est utilisé lorsque le Dictionary aurait (n)références à partir des classes DicEntry, mais la taille est inconnue, c'est utile lorsque Dictionary est une définition un peu abstraite.

la 4e. un(Agrégation) est utilisé lorsque Dictionary est un peu conteneur pour DicEntry mais avec Dictionary finalisation d'objet (kill), les objets hébergés DicEntry continueraient leur vie(keep persistante)

public  class Dictionary {
private List<DicEntry> dics;//with Dictionary termination, dics instance would be kept alive
}
public class DictEntry{}

Et le dernier est comme le 4. un avec une différence, et c'est lorsque le Dictionary sera finalisé, cela provoquera la finalisation des objets hébergésDicEntry

Je ne peux vraiment pas montrer l'agrégation/composition avec du code, mais le diagramme indique au développeur que l'objet hébergé sera disponible après la fin de la classe hôte ou non.

 2
Author: , 2013-10-26 12:47:23