DEV Community

Ortiz de Arcanjo Antonio David
Ortiz de Arcanjo Antonio David

Posted on

Dependência entre classes

Durante a implementação de umsoftware é comum nos depararmos com erros. Na alteração de um atributo, método ou uma classe e verficamos que quebram as outras partes do software. Isto para a existência de um alto acoplamento entre classes.

Dependência é o relacionamento que indica a dependência entre um componente e outro. Esta relação indica que um determinado contexto precisa do outro para efectuar as suas operações.
A dependência é um dos relacionamentos mais comuns na construção de um software. Torma-se difícil impossível programar sem utilizar a depedência.

Representação da Dependência

Na UML a dependência pode ser representada nos seguintes diagramas:

  • Classes;
  • Caso de Uso;
  • Componentes;
  • Implementação.

A depedência entre classes é representada por uma linha tracejada e uma seta. A seta vai da classe dependente para classe independente (classe A ------> classe B).

Tipos de dependência

  • Abstração: classe A e classe B representam o mesmo em diferentes níveis de abstração;
  • Ligação: o método da Classe A recebe classe B como parâmetro e liga os objectos a este parâmetro;
  • Realização: Classe A é uma implementação de classe B;
  • Substituição: Classe A pode substituir a classe B e deve obedecer o contrato da classe B;
  • Uso: Classe A precisa da classe B para relaizar correctamente as operações.

Cenários da dependência entre classes

  • Classe A utiliza a classe B que possui escopo global;
  • Classe A utiliza a classe B como um parâmetro para uma de suas operações;
  • Classe A utiliza a classe B como uma variável local para uma de suas operações;
  • Classe A envia uma mensagem para uma classe B.

Precauções com a Dependência

  • Cada alteração na classe B, deve exigir a alteração na classe A;
  • Caso a classe B seja eliminada, pode causar pronlemas na classe A;
  • O uso incorrecto pode causar um alto acoplamento no software, causando dificuldades na manutenção.

Sugestões

  • Apesar de ser comum na Orientação a Objectos, a dependência pode ser utlizada em outros paradigmas de programação.
  • Para sistemas que não possuem Diagrama de classes é possível visualizar a dependência com a ajuda de uma IDE (Eclipse ou Visual Studio).

Exemplo

Representação da dependência numa ferramenta de geração de fontes de dados.
Uma fonte de dados é criada a partir de um contexto e permite criar um ficherio com o formato solicitado(.sql, .csv e .xml).
Um contexto ou tabela possui um nome, nº de campos, formato de dados, lista de campos, tipos de dados lista de valores mínimos e valores máximos.
A geração de fontes dependem do Contexto. No final será gerado um arquivo com a extensão do formato.
Deve ter uma classe que permita chamar as fontes de dados.
Modelagem: Astah UML
Linguagen: Java

Diagrama de classes
Image description

Context
Image description

XMLSource
Image description

DataSourceCaller
Image description

DataSource
Image description

Referências


Top comments (0)