1. Common Closure Principle (CCP)
“ classes que mudam juntas, permanecem juntas”
Common Closure Principle (CCP) é um princípio design de pacotes cujo foco é a
manutenabilidade do código. A abordagem foi proposta por Robert Martin, é
uma generalização do Single Responsibility Principle (SIP). Para o SIP uma
classe deve ter apenas um motivo para ser alterada, se mais de um tipo de
mudança no sistema afeta a classe provavelmente ela pode ser dividia em mais
de uma, ou seja, ela representa conceitos demais. O mesmo se aplica para
pacotes. Um pacote deve seguir o Open-Closed Principle (OCP), se proteger de
mudanças e ao mesmo tempo estr aberto à extensão.
Características:
• As classes de um pacote devem ser fechadas para os mesmos tipos de
mudança. Uma mudança que afeta um pacote afeta todas as classes
daquele pacote e nenhum outro pacote
• Um pacote não deve ter múltiplas razões para mudar.
• Um mudança deve ser restrita a um (ou poucos) pacote(s)
• Então, ponha em um pacote as classes que provavelmente mudarão pela
mesma razão
• As classes em um pacote devem ser fechadas em conjunto contra o
mesmo tipo de mudanças. Uma mudança que afeta um pacote afeta
todas as classes desse pacote.
Um exemplo simples são as classes que manipulam horários, programação semanal,
programação quinzenal, mensal, Alterar agendamento, etc, podem formar um único pacote.
Quando for feita uma alteração de horário de verão serão afetadas todas as classes dentro do
pacote.
2. Conclusão
Mesmo a maioria dos princípios do design de classes defendendo o baixo
acoplamento, de modo que elas possam mudar sem afetar as outras classes,
CCP tenta visualizar as classes que são dependentes umas das outros na
perspectiva da manutenção do código.
Referências
MARTINS, José Carlos Cordeiro, Técnicas Para Gerenciamento de Projetos
de Software.
http://www.fi.muni.cz/~sochor/PA103/Slajdy/TvorbaBaliku.pdf
http://www.objectmentor.com/omSolutions/oops_what.html