terça-feira, 17 de junho de 2014

Projeto - UML - Relacionamentos

Como professor sei que uma das coisas mais confusas da UML 2.0 são os relacionamentos (obrigado a Russ Jackson pelas ideias), primeiro vejamos sua simbologia:

Para esclarecer esses 5 tipos de relacionamentos que podem ocorrer entre duas classes permita-me explicá-los através de um exemplo em linguagem Java:
  • Dependência - Ocorre quando uma classe se utiliza de outra, em um relacionamento muito fraco, sem conhecer nada do objeto de origem da classe.
public class A {
  public void doSomething(B b) { }
}
  • Agregação - Ocorre quando uma classe se utiliza de outra de modo "fraco", é também conhecido como "has a" e a classe de origem solicita as informações do objeto. É o tipo mais comum de representação do "Encapsulamento" com os métodos modificadores (Get/Set).
public class A {
  private B b;
  public void setB(B b) { this.b = b; }
  public void getB() { return b; }
}
  • Composição - Este já é um relacionamento mais "forte" entre duas classes, e é a classe hospedeira que define o objeto resultante. Normalmente os objetos são iniciados (construídos) através do construtor da classe.
public class A {
  private B b;
  public A() {
    b = new B();
  }
}
  • Herança ou Generalização - Quando uma classe herda as características de outra classe, também conhecido como relacionamento "is a".
public class A { }
public class B extends A { }
  • Realização - Ocorre na implementação de uma interface por uma classe.
public interface A { }
public class B implements A { }

Obrigado e até a próxima
Fernando Anselmo

0 comentários:

Postar um comentário