O documento discute o Princípio da Reutilização Comum (CRP), que estabelece que as classes dentro de um pacote são reutilizadas em conjunto, de modo que se uma classe em um pacote for utilizada, todas as outras classes desse pacote também serão utilizadas. O documento explica que apenas classes coesas devem ser empacotadas juntas e que a inadequada seleção de classes pode criar dependências indesejáveis. Ilustra como as classes dentro de um pacote estão interligadas e como uma alteração em uma classe requer a redistribuição de
1. TRABALHO DE
PROGRAMAÇÃO
ORIENTADO A
OBJETO
Prof. Edgar Davidson
Alunos:
Marco Antônio
Wanderson Ribeiro
2. Princípio da Reutilização Comum (CRP)
Princípio da Reutilização Comum diz que as classes em pacote (package) são
reutilizadas em conjunto e se reutilizar umas das classes em um pacote, estará
reutilizando todas.
Somente as classes coesas devem ser empacotadas em conjunto. Assim como
em tudo, os pacotes de classes e sua coesão devem ser definidos a partir da perspectiva
do usuário. Se um usuário utiliza um pacote (package), todas as classes do pacote devem
ser reutilizáveis no mesmo contexto. As classes que não estão intimamente relacionados
entre si não devem está no mesmo pacote, então toda vez que houver dependência de
um pacote, haverá dependência de cada classe existente no pacote. É muito importante
decidir quais classes devem ser unidas por um pacote (package). A Inadequada seleção
de classes pode criar dependências indesejáveis e tornar o uso do pacote um pesadelo.
Exemplo se estiver usando um pacote para cálculos de matrizes, é melhor ter
somente classes relacionadas a essa funcionalidade, caso contrário, estará reavaliando e
redistribuindo, mas do que necessário, gastando assim também mais esforço do que
suficiente.
Um outro exemplo simples pode ser uma classe container e seus associados
iteradores. Estas classes são reutilizadas juntas devido a estarem estreitamente ligada
uma as outras.
Ponto Relevante do CRP
Mesmo usando apenas uma classe dentro do pacote, ainda assim existe uma
dependência, portanto se houver mudança em apenas uma classe do pacote (package),
todo o pacote dever reavaliado e redistribuído.
3. As figuras abaixo irão ilustrar melhor o principio CRP:
Classes reutilizadas colaboram com outras classes que são parte de uma
abstração bem coesa que chamamos de pacotes (package).
Quando um pacote usa outro é criado então uma dependência entre eles.
Se dentro do pacote (package) é usado somente uma classe mesmo assim
haverá uma forte dependência de todo o pacote.
Cada vez que o pacote (P2) é atualizado, usando o pacote (P1) então (P1)
deve ser reavaliado e redistribuído.
4. Conclusão:
Conforme ficou demonstrado no exemplo e nas ilustrações acima, a desvantagem
do princípio está no forte vinculo das classes do pacote, se for usar somente uma classe
do mesmo terá que usar todo o pacote, empreendendo mais esforço do que é
necessário.