SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Destaque

Bloque académico
Bloque académicoBloque académico
Bloque académico
Educapapyrus S.A
 
Common closure principle
Common closure principle Common closure principle
Common closure principle
Engenharia de Software Ágil
 
Web 2.0
Web 2.0Web 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
CorneliaSL
 
Bond 2004 Swes Orientation 20091014
Bond 2004 Swes Orientation 20091014Bond 2004 Swes Orientation 20091014
Bond 2004 Swes Orientation 20091014
Mills Rep
 
Karolina y nykolax
Karolina y nykolaxKarolina y nykolax
Karolina y nykolax
nicolasossacardona
 
Gonzalorojas 02 Requisitos En Aplicaciones Web
Gonzalorojas 02 Requisitos En Aplicaciones WebGonzalorojas 02 Requisitos En Aplicaciones Web
Gonzalorojas 02 Requisitos En Aplicaciones Web
Felipe Cerda
 
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
Artista Plástico, Arquiteto Urbanista e Educador
 
Introduction to AWS
Introduction to AWSIntroduction to AWS
Introduction to AWS
OSSCube
 
Mills Elementary Boundary Info Presentation
Mills Elementary Boundary Info PresentationMills Elementary Boundary Info Presentation
Mills Elementary Boundary Info Presentation
Mills 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 13
AleMuPa
 
Bloque académico
Bloque académicoBloque académico
Bloque académico
Educapapyrus S.A
 
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
Rene 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.1
Felipe Cerda
 
Los mitos de las redes sociales
Los mitos de las redes socialesLos mitos de las redes sociales
Los mitos de las redes sociales
Germán Sánchez
 
AISD 2010 Strategic Plan
AISD 2010 Strategic PlanAISD 2010 Strategic Plan
AISD 2010 Strategic Plan
Mills 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
 
The break 2011a
The break 2011aThe break 2011a
The break 2011a
thomasadamsmedia
 

Destaque (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
 

Semelhante a Common closure principle

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
Engenharia de Software Ágil
 
boas praticas
boas praticasboas praticas
boas praticas
lcbj
 
SRP - Single Responsability Principle
SRP - Single Responsability PrincipleSRP - Single Responsability Principle
SRP - Single Responsability Principle
Engenharia de Software Ágil
 
Artigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-finalArtigo - Single responsabilityprinciple-final
Artigo - Single responsabilityprinciple-final
Thiago Ribeiro
 
Livro Código limpo: Classes
Livro Código limpo:  ClassesLivro Código limpo:  Classes
Livro Código limpo: Classes
Inael Rodrigues
 
Banco de Dados - Aula 04
Banco de Dados - Aula 04Banco de Dados - Aula 04
Banco de Dados - Aula 04
Willian Carvalho
 
Modulo3_0_Apontamentos_1.pdf
Modulo3_0_Apontamentos_1.pdfModulo3_0_Apontamentos_1.pdf
Modulo3_0_Apontamentos_1.pdf
ssuser234cf7
 
Dojo solid
Dojo solidDojo solid
Dojo solid
jeffersonmc2
 
Information Expert.pdf
Information Expert.pdfInformation Expert.pdf
Information Expert.pdf
ssuserefabf71
 
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
Paulo Vitor
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
Engenharia de Software Ágil
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
Engenharia de Software Ágil
 

Semelhante a Common closure principle (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
 

Mais de Engenharia de Software Ágil

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

Mais de 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
 

Último

Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 

Último (7)

Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 

Common closure principle

  • 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