none
UML RRS feed

  • Pergunta

  • Galera gostaria de saber qual a diferença entre Dependencia, Associação, Agregação e Composição, mostrei um exemplo aonde estou me confundindo.
    Eu tenho uma classe "janela" e uma classe "barra de titulos"
    Não consigo compreender se minha classe "barra de titulos" é uma dependencia da minha classe "janela" .
    Por outro lado ela também poderia ser um agregação pois minha "janela" possui uma "barra de titulos".
    Ou seria uma composição porque minha "barra de titulos" é parte da minha "janela"

    Como eu poderia resolver esses problemas, pq sei usar os simbolos, mas parece que minha lógica se confunde como e quando usar o que...
    Se alguem puder me ajudar eu agradeceria...

    Obrigado
    SirSmart
    quarta-feira, 9 de dezembro de 2009 18:12

Respostas

  • Olá,

    Neste caso é composição, pois a barra de títulos é parte integrante da janela, e somente de uma janela, não pode ser compartilhada. A leitura correta então é 'minha "janela" possui uma "barra de titulos"' (você atribuiu isto a outro significado).

    Na prática, isto não faz muita diferença. Se você está na fase de análise (OOA), não se atenha muito a estes detalhes. Se possível fique apenas com associações.

    A dependência se caracteriza quando um Classifier (que depende) não pode efetuar suas operações sem que exista um outro Classifier (depende de). A agregação/composição é uma dependência implícita, então traçamos uma dependência somente se um método precisar de outra classe. É mais comum fazer isso no projeto (OOD).

    Espero ter sido útil. Sei bem como estes termos confundem no início. A UML foi incorporando recursos de OOP indiscriminadamente, isso complica um pouco desassociar análise/projeto/programação.

    Abraço
    • Marcado como Resposta SirSmart sexta-feira, 11 de dezembro de 2009 20:06
    sexta-feira, 11 de dezembro de 2009 17:40