9
Boas Práticas de OO (Princípios) Msc Luiz Barboza

boas praticas

  • Upload
    lcbj

  • View
    1.762

  • Download
    1

Embed Size (px)

Citation preview

Page 1: boas praticas

Boas Práticas de OO(Princípios)

Msc Luiz Barboza

Page 2: boas praticas

Princípios de Projeto Orientado a Objetos Open/Closed Principle (OCP)

Princípio do Aberto/Fechado Liskov Substitution Principle (LSP)

Princípio da Substituição de Liskov SRP - Single Responsability Principle

Princípio da responsabilidade única Don’t Repeat Yourself

(DRY) Não se repita

Dependency Inversion Principle (DIP) Princípio da Inversão de Dependência

Interface Segregation Principle (ISP) Princípio da Segregação de Interfaces

Page 3: boas praticas

Open/Closed Principle (OCP)Princípio do Aberto/Fechado

Um módulo deveria ser aberto para extensão mas fechado para modificação.

Objetivo: criar módulos que sejam estensíveis sem precisarem ser modificados

Conseqüências Mudanças não se propagam para código que já

existe Se você não precisa mudar um código, então

provavelmente você não vai quebrá-lo.

Page 4: boas praticas

Liskov Substitution Principle (LSP)Princípio da Substituição de Liskov

Sempre que uma classe cliente espera uma instância de uma classe base A, uma instância de uma subclasse B de A deve poder ser usada no lugar.(relação É-UM)

Objetivo: evitar que premissas em relação a classes base não sejam quebradas por suas subclasses

Exemplo clássico: elipse e círculo

Page 5: boas praticas

SRP - Single Responsability Principle Princípio da responsabilidade únicaALTA COESÃO

Deve existir um e somente UM MOTIVO para que uma classe mude

Conseqüências Baseado no princípio da coesão funcional, uma

classe deve ter uma única responsabilidade; Se uma classe possuir mais de uma

responsabilidade, deve-se considerar sua decomposição em duas ou mais classes;

Cada responsabilidade é um “eixo de mudança” e as fontes de mudança devem ser isoladas;

Page 6: boas praticas

Don’t Repeat Yourself (DRY)Não se repitaALTA COESÃO

Cada informação e comportamento do seu sistema deve estar em um único lugar sensível. Ou seja, não deve existir código repetido através

do sistema.

Page 7: boas praticas

Dependency Inversion Principle (DIP)Princípio da Inversão de DependênciaBAIXO ACOPLAMENTO

Dependa sempre de interfaces abstratas, e nunca de classes concretas

Justificativa: Implementações concretas são mais propensas a

mudanças Possibilidade de alterar (ou incluir novas)

implementações sem necessidade de alterar classes clientes

Page 8: boas praticas

Interface Segregation Principle (ISP)Princípio da Segregação de InterfacesBAIXO ACOPLAMENTO

Expor o mínimo possível necessário para cada uso de uma determinada classe

Uma interface pra cada possível tipo de cliente.

Objetivos: Minimizar dependências Facilitar compreensão dos módulos clientes

Page 9: boas praticas

Boas Práticas de OO(Princípios)

Msc Luiz Barboza