SlideShare a Scribd company logo
1 of 2
Download to read offline
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.
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

More Related Content

Viewers also liked

Proyecto de resolución citacion kicillof
Proyecto de resolución   citacion kicillofProyecto de resolución   citacion kicillof
Proyecto de resolución citacion kicillofCorneliaSL
 
Bond 2004 Swes Orientation 20091014
Bond 2004 Swes Orientation 20091014Bond 2004 Swes Orientation 20091014
Bond 2004 Swes Orientation 20091014Mills Rep
 
Gonzalorojas 02 Requisitos En Aplicaciones Web
Gonzalorojas 02 Requisitos En Aplicaciones WebGonzalorojas 02 Requisitos En Aplicaciones Web
Gonzalorojas 02 Requisitos En Aplicaciones WebFelipe Cerda
 
Introduction to AWS
Introduction to AWSIntroduction to AWS
Introduction to AWSOSSCube
 
Mills Elementary Boundary Info Presentation
Mills Elementary Boundary Info PresentationMills Elementary Boundary Info Presentation
Mills Elementary Boundary Info PresentationMills Rep
 
Sort of Schools East Of Mopac West Of 35
Sort of Schools East Of Mopac West Of 35Sort of Schools East Of Mopac West Of 35
Sort of Schools East Of Mopac West Of 35Mills Rep
 
Practica 13
Practica 13Practica 13
Practica 13AleMuPa
 
RESUMO DO LIVRO I DA REPUBLICA DE PLATÃO
RESUMO DO LIVRO I DA REPUBLICA DE PLATÃORESUMO DO LIVRO I DA REPUBLICA DE PLATÃO
RESUMO DO LIVRO I DA REPUBLICA DE PLATÃORene Lins
 
Ruby on Rails en NetBeans 6.1
Ruby on Rails en NetBeans 6.1Ruby on Rails en NetBeans 6.1
Ruby on Rails en NetBeans 6.1Felipe Cerda
 
Los mitos de las redes sociales
Los mitos de las redes socialesLos mitos de las redes sociales
Los mitos de las redes socialesGermán Sánchez
 
AISD 2010 Strategic Plan
AISD 2010 Strategic PlanAISD 2010 Strategic Plan
AISD 2010 Strategic PlanMills Rep
 
EOSSY, un groupement d'experts à votre service
EOSSY, un groupement d'experts à votre serviceEOSSY, un groupement d'experts à votre service
EOSSY, un groupement d'experts à votre serviceSILKAN
 

Viewers also liked (19)

Bloque académico
Bloque académicoBloque académico
Bloque académico
 
Common closure principle
Common closure principle Common closure principle
Common closure principle
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Proyecto de resolución citacion kicillof
Proyecto de resolución   citacion kicillofProyecto de resolución   citacion kicillof
Proyecto de resolución citacion kicillof
 
Bond 2004 Swes Orientation 20091014
Bond 2004 Swes Orientation 20091014Bond 2004 Swes Orientation 20091014
Bond 2004 Swes Orientation 20091014
 
Karolina y nykolax
Karolina y nykolaxKarolina y nykolax
Karolina y nykolax
 
Gonzalorojas 02 Requisitos En Aplicaciones Web
Gonzalorojas 02 Requisitos En Aplicaciones WebGonzalorojas 02 Requisitos En Aplicaciones Web
Gonzalorojas 02 Requisitos En Aplicaciones Web
 
Roberto Bergamo - artista plástico - Brasil - 2011
Roberto Bergamo -  artista plástico  - Brasil - 2011Roberto Bergamo -  artista plástico  - Brasil - 2011
Roberto Bergamo - artista plástico - Brasil - 2011
 
Introduction to AWS
Introduction to AWSIntroduction to AWS
Introduction to AWS
 
Mills Elementary Boundary Info Presentation
Mills Elementary Boundary Info PresentationMills Elementary Boundary Info Presentation
Mills Elementary Boundary Info Presentation
 
Sort of Schools East Of Mopac West Of 35
Sort of Schools East Of Mopac West Of 35Sort of Schools East Of Mopac West Of 35
Sort of Schools East Of Mopac West Of 35
 
Practica 13
Practica 13Practica 13
Practica 13
 
Bloque académico
Bloque académicoBloque académico
Bloque académico
 
RESUMO DO LIVRO I DA REPUBLICA DE PLATÃO
RESUMO DO LIVRO I DA REPUBLICA DE PLATÃORESUMO DO LIVRO I DA REPUBLICA DE PLATÃO
RESUMO DO LIVRO I DA REPUBLICA DE PLATÃO
 
Ruby on Rails en NetBeans 6.1
Ruby on Rails en NetBeans 6.1Ruby on Rails en NetBeans 6.1
Ruby on Rails en NetBeans 6.1
 
Los mitos de las redes sociales
Los mitos de las redes socialesLos mitos de las redes sociales
Los mitos de las redes sociales
 
AISD 2010 Strategic Plan
AISD 2010 Strategic PlanAISD 2010 Strategic Plan
AISD 2010 Strategic Plan
 
EOSSY, un groupement d'experts à votre service
EOSSY, un groupement d'experts à votre serviceEOSSY, un groupement d'experts à votre service
EOSSY, un groupement d'experts à votre service
 
The break 2011a
The break 2011aThe break 2011a
The break 2011a
 

Similar to CCP mantém classes juntas

OCP - The Open Close Principle - Princípio aberto/fechado
OCP - The Open Close Principle - Princípio aberto/fechadoOCP - The Open Close Principle - Princípio aberto/fechado
OCP - The Open Close Principle - Princípio aberto/fechadoEngenharia de Software Ágil
 
boas praticas
boas praticasboas praticas
boas praticaslcbj
 
Artigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-finalArtigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-finalThiago Ribeiro
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: ClassesInael Rodrigues
 
Modulo3_0_Apontamentos_1.pdf
Modulo3_0_Apontamentos_1.pdfModulo3_0_Apontamentos_1.pdf
Modulo3_0_Apontamentos_1.pdfssuser234cf7
 
Information Expert.pdf
Information Expert.pdfInformation Expert.pdf
Information Expert.pdfssuserefabf71
 
Baixo acoplamento e alta coesão no paradigma Orientado a Objetos
Baixo acoplamento e alta coesão no paradigma Orientado a ObjetosBaixo acoplamento e alta coesão no paradigma Orientado a Objetos
Baixo acoplamento e alta coesão no paradigma Orientado a ObjetosPaulo Vitor
 

Similar to CCP mantém classes juntas (12)

OCP - The Open Close Principle - Princípio aberto/fechado
OCP - The Open Close Principle - Princípio aberto/fechadoOCP - The Open Close Principle - Princípio aberto/fechado
OCP - The Open Close Principle - Princípio aberto/fechado
 
boas praticas
boas praticasboas praticas
boas praticas
 
SRP - Single Responsability Principle
SRP - Single Responsability PrincipleSRP - Single Responsability Principle
SRP - Single Responsability Principle
 
Artigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-finalArtigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-final
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: Classes
 
Banco de Dados - Aula 04
Banco de Dados - Aula 04Banco de Dados - Aula 04
Banco de Dados - Aula 04
 
Modulo3_0_Apontamentos_1.pdf
Modulo3_0_Apontamentos_1.pdfModulo3_0_Apontamentos_1.pdf
Modulo3_0_Apontamentos_1.pdf
 
Dojo solid
Dojo solidDojo solid
Dojo solid
 
Information Expert.pdf
Information Expert.pdfInformation Expert.pdf
Information Expert.pdf
 
Baixo acoplamento e alta coesão no paradigma Orientado a Objetos
Baixo acoplamento e alta coesão no paradigma Orientado a ObjetosBaixo acoplamento e alta coesão no paradigma Orientado a Objetos
Baixo acoplamento e alta coesão no paradigma Orientado a Objetos
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 

More from Engenharia de Software Ágil

More from Engenharia de Software Ágil (18)

Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 
Acyclic dependencies principle
Acyclic dependencies principleAcyclic dependencies principle
Acyclic dependencies principle
 
Acyclic dependencies principle (adp)
Acyclic dependencies principle  (adp)Acyclic dependencies principle  (adp)
Acyclic dependencies principle (adp)
 
Reuse release equivalence principle
Reuse release equivalence principleReuse release equivalence principle
Reuse release equivalence principle
 
Rep reuse release equivalence principle
Rep reuse release equivalence principleRep reuse release equivalence principle
Rep reuse release equivalence principle
 
Sdp – stable dependencies principles
Sdp – stable dependencies principlesSdp – stable dependencies principles
Sdp – stable dependencies principles
 
principio de reutilização comum
principio de reutilização comumprincipio de reutilização comum
principio de reutilização comum
 
Princípio law of demeter
Princípio law of demeterPrincípio law of demeter
Princípio law of demeter
 
Lod law of demeter
Lod law of demeterLod law of demeter
Lod law of demeter
 
Dip the dependency inversion principle
Dip   the dependency inversion principleDip   the dependency inversion principle
Dip the dependency inversion principle
 
Dip the dependency inversion principle
Dip   the dependency inversion principleDip   the dependency inversion principle
Dip the dependency inversion principle
 
Dip the dependency inversion principle
Dip   the dependency inversion principleDip   the dependency inversion principle
Dip the dependency inversion principle
 
(ISP) - Interface Segregation Principle
(ISP)  - Interface Segregation Principle(ISP)  - Interface Segregation Principle
(ISP) - Interface Segregation Principle
 
LSP – The Liskov Substitution Principle
LSP – The Liskov Substitution PrincipleLSP – The Liskov Substitution Principle
LSP – The Liskov Substitution Principle
 
Princípio Law Of Demeter (LOD)
Princípio Law Of Demeter (LOD)Princípio Law Of Demeter (LOD)
Princípio Law Of Demeter (LOD)
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
FDD
FDDFDD
FDD
 
DDD - Domain Driven Design
DDD - Domain Driven DesignDDD - Domain Driven Design
DDD - Domain Driven Design
 

CCP mantém classes juntas

  • 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