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
Fazer uma associação à classe Curso;
Fazer uma agregação à classe Dependente;
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:
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.
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 classeDependentepode ser reutilizada em outros lugares do sistema.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,
DependenteeTelefonesejam criadas uma única vez e utilizadas em vários objetos ServidorPublico, promovendo reuso, modularidade e organização do código.
Last updated