Reuso

Definição

O Reuso é inerente ao processo de solução de problemas utilizado pelos seres humanos, pois à medida que soluções são encontradas, essas são utilizadas em problemas similares.

No mundo do software não é diferente! Para entregar software de qualidade em menos tempo, é preciso reutilizar.

O Reuso veio para agilizar o processo de desenvolvimento de software, aumentando a sua confiabilidade e diminuindo o seu custo, de uma forma simples e contemplando as boas práticas de engenharia de software.

Formas

Formas de Reuso:

  • Reuso de Requisitos

  • Reuso de Casos de uso

  • Reuso de Regras de Negócio

  • Reuso de Arquiteturas

  • Reuso de Módulos

  • Reuso de Pacotes

  • Reuso de Classes/Interfaces

  • Reuso de Padrões de Projeto

  • Reuso de Algoritmos

  • Reuso de Projetos de Interfaces

Tipos

Associação

Relação entre duas classes. Uma classe refere-se a outra, sem haver dependência entre elas.

A associação é quando se tem uma relação entre classes de forma independente, isto é, uma não se constitui parte da outra.

Neste tipo de reuso prevalece um baixo acoplamento

Agregação

Forma de associação mais forte em que uma classe é composta por outras classes, mas essas classes ainda podem existir independentemente.

A agregação é uma forma especial de associação mais forte em que uma classe é composta por outras classes, mas essas classes ainda podem existir independentemente.

Neste tipo de reuso prevalece um médio acoplamento.

Composição

Forma de reuso em que uma classe contém uma ou mais instâncias de outras classes como membros.

A composição é uma forma especial de Agregação em que uma classe contém uma ou mais instâncias de outras classes como membros. A classe que contém as instâncias é chamada de "todo" e as instâncias são chamadas de "partes".

Neste tipo de reuso prevalece um forte acoplamento

Observações

A implementação dos 3 tipos de reuso (associação, agregação e composição) é igual. A principal diferença é o significado de cada relacionamento.Todo relacionamento é identificado por um atributos que a classe ira utilizar.

Notação UML:

Composição:

a "é parte essencial de" b

Agregação

a "é parte de" b

Associação

a "é usado por" b

Exercícios

Exercício 1 - Criar as classes Dependente e Telefone com todos os seus atributos e métodos

Exercício 2 - Alterar a classe ServidorPublico para

  1. Fazer uma associação à classe Curso;

  2. Fazer uma agregação à classe Dependente;

  3. Fazer uma composição com a classe Telefone.

Criar novos objetos das classes ServidorPublico, Curso, Dependente e Telefone

Curso.java

Dependente.java

Telefone.java

ServidorPublico.java

App.java

O conceito de reuso em orientação a objetos significa aproveitar classes, métodos ou componentes já existentes em diferentes partes do sistema, evitando duplicação de código e facilitando a manutenção.

No seu código, o reuso aparece de três formas principais:

  1. Associação: A classe ServidorPublico possui uma lista de objetos Curso. Isso permite que um servidor público tenha vários cursos associados, reaproveitando a classe Curso em diferentes contextos.

  2. Agregação: A classe ServidorPublico tem uma lista de Dependente. A agregação indica que dependentes podem existir independentemente do servidor público, mas estão relacionados a ele. Assim, a classe Dependente pode ser reutilizada em outros lugares do sistema.

  3. Composição: A classe ServidorPublico também possui uma lista de Telefone. Na composição, os telefones existem apenas enquanto o servidor público existir, mostrando um reuso mais forte e dependente.

Resumo: Essas relações permitem que as classes Curso, Dependente e Telefone sejam criadas uma única vez e utilizadas em vários objetos ServidorPublico, promovendo reuso, modularidade e organização do código.

Last updated