SlideShare uma empresa Scribd logo
1 de 2
Baixar para ler offline
The Interface Segregation Principle

Engenharia de Software Centrada em Métodos Ágil
Programação Orientada a Objetos
Thiago César
Walter Brito

Introdução
       O princípio da segregação de interfaces ajuda a resolver problemas de interface
poluída. São classes cuja interface não possui coesão tornando as interfaces poluídas e
disponibilizando métodos desnecessariamente.

      A Interface Segregation Principle (ISP) afirma que as classes não devem
implementar interfaces não usadas.



Interface Poluída
      Quando temos uma classe que contém métodos que o mesmo não utiliza e
temos outra classe que as utiliza, a primeira classe será afetada pelas mudanças que a
segunda classe necessita.




                           Imagem1. Diagrama de classe poluído




       Devemos separar as interfaces para esse tipo de acoplamento. Sendo assim,
algumas classes usam um grupo de funções e outras classes usam outros grupos.
Portanto as classes devem depender somente dos métodos que serão utilizados.
Para alcançar esse objetivo quebramos a interface da classe poluída em
interfaces específicas.




                             Imagem2. Diagrama de classe ISP




Conclusão
        Nesse artigo ilustramos que devemos depender nas classes somente de
métodos que realmente serão utilizados. Objetivo que pode ser alcançado quebrando
as interfaces da classe poluída em interfaces específicas, quebrando a dependência de
métodos que não utilizam criando uma independência entre eles.

Mais conteúdo relacionado

Mais de Engenharia de Software Ágil

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
 

Mais de Engenharia de Software Ágil (20)

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
 
Sap – stablility and abstract principle
Sap – stablility and abstract principleSap – stablility and abstract principle
Sap – stablility and abstract principle
 
Common closure principle
Common closure principleCommon closure principle
Common closure principle
 
Common closure principle
Common closure principle Common closure principle
Common closure 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
 
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
 
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
 
LSP – The Liskov Substitution Principle
LSP – The Liskov Substitution PrincipleLSP – The Liskov Substitution Principle
LSP – The Liskov Substitution Principle
 
SRP - Single Responsability Principle
SRP - Single Responsability PrincipleSRP - Single Responsability Principle
SRP - Single Responsability 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)
 

(ISP) - Interface Segregation Principle

  • 1. The Interface Segregation Principle Engenharia de Software Centrada em Métodos Ágil Programação Orientada a Objetos Thiago César Walter Brito Introdução O princípio da segregação de interfaces ajuda a resolver problemas de interface poluída. São classes cuja interface não possui coesão tornando as interfaces poluídas e disponibilizando métodos desnecessariamente. A Interface Segregation Principle (ISP) afirma que as classes não devem implementar interfaces não usadas. Interface Poluída Quando temos uma classe que contém métodos que o mesmo não utiliza e temos outra classe que as utiliza, a primeira classe será afetada pelas mudanças que a segunda classe necessita. Imagem1. Diagrama de classe poluído Devemos separar as interfaces para esse tipo de acoplamento. Sendo assim, algumas classes usam um grupo de funções e outras classes usam outros grupos. Portanto as classes devem depender somente dos métodos que serão utilizados.
  • 2. Para alcançar esse objetivo quebramos a interface da classe poluída em interfaces específicas. Imagem2. Diagrama de classe ISP Conclusão Nesse artigo ilustramos que devemos depender nas classes somente de métodos que realmente serão utilizados. Objetivo que pode ser alcançado quebrando as interfaces da classe poluída em interfaces específicas, quebrando a dependência de métodos que não utilizam criando uma independência entre eles.