Differenza tra associazione e di dipendenza?

In un diagramma delle classi in UML, qual è la differenza tra un’associazione di un rapporto e di una relazione di dipendenza?

Da quello che so, un’associazione è un più forte rapporto di dipendenza, ma io non sono sicuro di come si è più forti.

Qualche esempio sarebbe più che benvenuto 🙂

InformationsquelleAutor Charlie | 2009-08-05

 

7 Replies
  1. 44

    Qual è la differenza tra dipendenza e di associazione?:

    In generale, si utilizza un’associazione per rappresentare qualcosa di simile a un campo
    in una classe. Il link è sempre lì, in quella si può sempre chiedere un
    ordine per i suoi clienti. Non ha bisogno di essere effettivamente un campo, se si sono
    modellazione da un interfaccia ottica, si può indicare la
    presenza di un metodo che restituisce l’ordine del cliente.

    Citare la 3 ° edizione di UML Distilled (ora solo out) “un
    esiste una dipendenza tra due elementi, se le modifiche alla definizione di
    un elemento (il fornitore) può causare cambiamenti per l’altro (il
    client)”. Questo è un modo molto vago e relazione generale, che è il motivo per cui
    l’UML è dotato di una serie di stereotipi di diverse forme di dipendenza.
    In termini di codice, tali cose come denominazione di un tipo di parametro e la creazione di un
    oggetto in una variabile temporanea implica una dipendenza.

    • Perché la risposta, quando Martin non è così tanto meglio per voi?! +1
    • Non è cristallino per me ancora, ma una cosa che ho capito è che le dipendenze sono un po ‘più debole’ di associazioni. Sembra che le associazioni sono un sottoinsieme delle dipendenze, anche se a mio parere almeno, la dipendenza è un forte parola di associazione. Che potrebbe essere stata la fonte di confusione.
    • Che l’articolo dice bene. In realtà si allinea con i miei pensieri. Quindi, tirando in alcuni punti da qui: (1) non vuoi mostrare a tutti la dipendenza di un diagramma UML – ci sono troppe. È necessario essere molto selettivi e mostrare solo quelli che sono importanti per qualunque cosa sia che si sta comunicando. (2) Se c’è un’associazione tra due classi, c’è anche una dipendenza. All’associazione comporta, come fa una generalizzazione. Così ovvio dedurre la dipendenza è un po ‘ superset rapporto di altri UML relazioni
    • La tua spiegazione è troppo lontano dal mondo reale esempi, in modo da non dare una chiara comprensione anche per gli ingegneri del software.
    • softninja: vuoi dire che non hai capito. Tutti gli altri sembra più che accettabile. Oh, e grazie per il downvote.
    • Ho capito questa risposta: con l’associazione, si può chiedere ai genitori oggetto per l’oggetto associato (attraverso un getter, o alcuni getter-come metodo). con la dipendenza, non si può chiedere di tale oggetto, ma se si apportano delle modifiche, il ‘padre’ oggetto può rompersi.

  2. 55

    Un associazione quasi sempre implica che un oggetto è di un altro oggetto, come un campo/proprietà/attributi (la terminologia è diversa).

    Un dipendenza in genere (ma non sempre) implica che un oggetto accetta un altro oggetto come parametro di un metodo, un’istanza, o utilizza un altro oggetto. Un dipendenza è molto implicite da un associazione.

  3. 36

    In OOP termini:

    Associazione –> Un ha un C oggetto (come una variabile membro)

    Dipendenza –> Un riferimenti B (come parametro di un metodo o tipo di ritorno)

    public class A {
        private C c;
        public void myMethod(B b) {
            b.callMethod();
        }
    }
    

    C’è anche un risposta più dettagliata.

    • L’aggregazione è una parte con il tutto rispetto. Una Playlist & Canzone, per esempio. Si prega di controllare le mie altre risposte per una più ampia differenziazione tra Associazione, di Dipendenza e di Aggregazione stackoverflow.com/a/34069760/1998422
    • Da UML Distillata libro Martin Fowler : “Con le classi, le dipendenze esistono per vari motivi : Uno di classe invia un messaggio a un altro; una classe ha un altro come parte dei dati; una classe menziona un altro come parametro di una operazione di”
    • sì, hai ragione.Perso .Le mie scuse
  4. 22

    Dipendenza è come quando si definisce un metodo che accetta una Stringa(in Java, C#, come la stringa è un oggetto di loro) come parametro, allora la classe dipende dalla classe String.

    Associazione è come quando si dichiara una stringa come un attributo della classe.
    quindi il codice è associato con la classe string.

    String name = null //: is a association.
    
    • “L’associazione è come quando si dichiara una stringa come un attributo della classe. quindi il codice è associato con la classe string.” Se questo è il caso, qual è la differenza tra associazione e la composizione?
  5. 13

    Dipendenza – Un cambiamento in una classe influenza il cambiamento in classe dipendente. Esempio di Cerchio dipende dalla Forma (un’interfaccia). Se si cambia la Forma , colpisce il Cerchio troppo. Così, il Cerchio ha una dipendenza Forma.

    Associazione– significa che c’è una certa relazione tra 2 oggetti

    (uno-uno, uno-molti,molti-molti)

    Associazione è di 2 tipi-

    1. Composizione
    2. Aggregazione

      1) Composizione più forte Associazione o il rapporto tra i 2 oggetti. La creazione di un oggetto di un classe B all’interno di un altro classe A

     public class A {
           B b;
           public void setB(){
             this.b= new B();
            }
         }
    

    Se si elimina la classe A , B non esiste( B oggetto viene creato all’interno di Un solo).

    Un altro esempio -Corpo & Fegato .Il fegato non può esistere al di fuori del Corpo.

    2) Aggregazione più deboli tipo di Associazione tra 2 oggetti.

    public class A {       
                 B b;
                 public void setB(B b_ref){
                     this.b= b_ref;   
                    /* object B is passed as an argument of a method */
                  }
       }
    

    Anche se si elimina classe A, B esiste al di fuori di B è creata al di fuori e passato alla Classe A)

    Un altro esempio di questo – Uomo & Auto . L’uomo è una Macchina, ma l’Uomo & Auto esistere indipendentemente.

    • La dipendenza è un ambito locale, dove l’Associazione è ambito della classe.
  6. 9

    Qui: “Associazione contro Dipendenza vs Aggregazione vs. Composizione”, si dispone di un ottimo vademecum con diagrammi di classe uml e frammenti di codice.
    L’autore ci dà un elenco di relazioni, di Associazione, di Dipendenza, di Aggregazione, Composizione in un unico luogo.

    • Mi piace questa definizione. L’associazione è: io (la classe che fa riferimento a un’altra classe) basta tenere premuto un riferimento a un oggetto, io non la uso e i membri di quella classe non sono interessanti per me. La dipendenza è: io uso alcuni membri, in modo che se il riferimento è la classe di modifiche che potrebbero avere un impatto su di me. Se ho capito bene di che è facile da capire!
    • La prima domanda che è venuta in mente quando ho letto il tuo commento: in caso di associazione – perché si dovrebbe contenere un riferimento ad un oggetto e non usarlo? Vuoi dire come il riferimento è solo un campo, solo per essere restituito se un cliente vuole conoscere il riferimento?
  7. 3

    Una dipendenza è molto generale e abbassando la complessità è di circa diminuendo le dipendenze, per quanto possibile.

    Un’associazione è una forte (statica) di dipendenza. L’aggregazione e la Composizione sono anche più forti.

Lascia un commento