domingo, 26 de fevereiro de 2012

UML - Relação entre as classes



O objetivo deste tutorial é mostrar como utilizar a UML para representar a relação que existe entre as classes.

 
 Dependência: a classe precisa saber sobre a outra classe para usar os objetos desta classe. Por exemplo, um método da sua classe pode necessitar utilizar algum método da classe Math do Java. 

Associação: A classe além de precisar saber sobre a outra classe, ela precisa ter um atributo desta classe. Por exemplo, uma pessoa possui um telefone.


 
public class Pessoa {

 private Telefone telefone;

}
 
public class Telefone {
 
 private String numero;

}

Classe associativa: Quando você quer demonstrar que uma classe tem relacionamento com duas outras classes.


 
public class Turma {
 private List< Pessoa > listaPessoa;
}

public class Pessoa {
 private List< Turma > listaTurma;
 private List< Matricula > listaMatricula;
}

public class Matricula {

 private int codigo;

}
Agregação: Seria uma versão mais forte de associação. Por exemplo, um carro pertence a uma pessoa. Esta pessoa pode vender o seu carro, permitindo que outra pessoa seja dona do carro.


 
public class Carro {
 private String nome;
}

public class Pessoa {
 private List< Carro> listaCarro;
}
Composição: Relação mais forte que agregação. Por exemplo, pessoa possui um email, se a pessoa for excluida do sistema o seu email também será.


 
public class Email {
 private String descricao;
}

public class Pessoa {
 private List< Email > listaEmail;
}


Herança: Quando uma classe possui uma classe pai, herdando todos os seus atributos e métodos que sejam públicos e protegidos. No exemplo abaixo é mostrado um diagrama de classe que mistura herança com a implementação de uma classe.


 
public interface Pessoa {}
public class Usuario implements Pessoa {}
public class Administrador extends Usuario {}


Obrigado

6 comentários:

  1. Como ninguém comentou antes!!! Muito bom seu post!!!

    ResponderExcluir
  2. Qual a sua referência bibliográfica?

    ResponderExcluir
  3. Olá,

    desculpa, mas eu não sei te informar isso, faz muito tempo que fiz esse tutorial.

    Abraços

    ResponderExcluir
  4. Simples porém clara e objetiva essas instruções. Me serviram muito mesmo. Valeu!!!

    ResponderExcluir
  5. Simples porém clara e objetiva essas instruções. Me serviram muito mesmo. Valeu!!!

    ResponderExcluir