Diretriz: Dependência de Importação no Design
Dependência de Importação é um relacionamento entre pacotes. Esta diretriz introduz esse relacionamento.
Relacionamentos
Elementos Relacionados
Descrição Principal

Explicação

O gerenciamento de dependências de importação entre pacotes é um aspecto importante da estruturação de um modelo de objetos. Um pacote depende de outro se uma de suas classes possuir relacionamentos que sejam navegáveis para classes do outro pacote. Para expressar tais dependências, utilize a dependência de importação de um pacote para o pacote do qual ele depende.

Diagrama mostrando relacionamentos entre um componente e um operador, um alarme e uma impressora, um cliente e um item de depósito.

As dependências entre pacotes são expressas por dependências de importação.

Uso

Você desenvolve dependências de importação da seguinte maneira:

  • Antes de iniciar o trabalho com o modelo de objetos, faça esquemas de dependências para usar como diretrizes durante o trabalho.
  • Quando o modelo estiver concluído, use-o para mostrar as dependências que realmente estão nele. Isso implica em atualizar dependências de importação no modelo de objetos.
  • Se você tiver dividido o modelo em pacotes anteriormente, use as dependências de importação para mostrar onde as dependências são permitidas.
  • A maneira como os pacotes dependem um do outro afeta a tolerância de um sistema à mudança. Será mais fácil alterar um modelo de objeto se você:
  • Referenciar um número mínimo de classes contidas de fora de cada pacote. Se você referenciar muitas classes, o pacote poderá ter muitas responsabilidades diferentes e deverá ser dividido em dois.
  • Faça cada pacote depender de um número pequeno de outros pacotes.
  • Teste cada pacote separadamente. Isso significa que você deve testar um pacote simulando o pacote do qual ele depende. Você não deve exigir que outros pacotes sejam parcial ou totalmente implementados. Se puder testar um pacote separadamente, o desenvolvimento e a manutenção do sistema para cada pacote será mais fácil.
  • Posicione as partes gerais do modelo de objetos em pacotes separados, dos quais outros pacotes dependem. Se houver tal pacote, preste bastante atenção ao liberar seu gerenciamento, já que várias partes do sistema podem ser afetadas por mudanças no pacote.

Exemplo

Suponha que você encontre algo em comum para as classes Painel do Cliente e Painel do Operador na máquina de reciclagem. Você designa esses serviços gerais a uma nova classe, Painel, que é colocada em um novo pacote, Painéis. As outras duas classes poderão então fazer referência a essa classe para usar os serviços gerais. Como as classes pertencem a dois pacotes separados, os dois pacotes dependerão do novo pacote. Essa eliminação de redundância faz com que as mudanças na funcionalidade comum só precisem ser feitas em um local.