Boas Práticas de OO (Princípios)  Msc Luiz Barboza
Princípios de Projeto Orientado a Objetos <ul><li>Open/Closed Principle (OCP) </li></ul><ul><ul><li>Princípio do Aberto/Fe...
Open/Closed Principle (OCP) Princípio do Aberto/Fechado <ul><li>Um módulo deveria ser aberto para extensão mas fechado par...
Liskov Substitution Principle (LSP) Princípio da Substituição de Liskov <ul><li>Sempre que uma classe cliente espera uma i...
SRP - Single Responsability Principle Princípio da responsabilidade única ALTA COESÃO   <ul><li>Deve existir um e somente ...
Don’t Repeat Yourself (DRY) Não se repita ALTA COESÃO   <ul><li>Cada informação e comportamento do seu sistema deve estar ...
Dependency Inversion Principle (DIP) Princípio da Inversão de Dependência BAIXO ACOPLAMENTO   <ul><li>Dependa sempre de in...
Interface Segregation Principle (ISP) Princípio da Segregação de Interfaces BAIXO ACOPLAMENTO   <ul><li>Expor o mínimo pos...
Boas Práticas de OO (Princípios)  Msc Luiz Barboza
Upcoming SlideShare
Loading in...5
×

boas praticas

1,778

Published on

Published in: Travel, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,778
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
49
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • boas praticas

    1. 1. Boas Práticas de OO (Princípios) Msc Luiz Barboza
    2. 2. Princípios de Projeto Orientado a Objetos <ul><li>Open/Closed Principle (OCP) </li></ul><ul><ul><li>Princípio do Aberto/Fechado </li></ul></ul><ul><li>Liskov Substitution Principle (LSP) </li></ul><ul><ul><li>Princípio da Substituição de Liskov </li></ul></ul><ul><li>SRP - Single Responsability Principle </li></ul><ul><ul><li>Princípio da responsabilidade única </li></ul></ul><ul><li>Don’t Repeat Yourself (DRY) </li></ul><ul><ul><li>Não se repita </li></ul></ul><ul><li>Dependency Inversion Principle (DIP) </li></ul><ul><ul><li>Princípio da Inversão de Dependência </li></ul></ul><ul><li>Interface Segregation Principle (ISP) </li></ul><ul><ul><li>Princípio da Segregação de Interfaces </li></ul></ul>
    3. 3. Open/Closed Principle (OCP) Princípio do Aberto/Fechado <ul><li>Um módulo deveria ser aberto para extensão mas fechado para modificação. </li></ul><ul><li>Objetivo: criar módulos que sejam estensíveis sem precisarem ser modificados </li></ul><ul><li>Conseqüências </li></ul><ul><ul><li>Mudanças não se propagam para código que já existe </li></ul></ul><ul><ul><li>Se você não precisa mudar um código, então provavelmente você não vai quebrá-lo. </li></ul></ul>
    4. 4. Liskov Substitution Principle (LSP) Princípio da Substituição de Liskov <ul><li>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) </li></ul><ul><li>Objetivo: evitar que premissas em relação a classes base não sejam quebradas por suas subclasses </li></ul><ul><li>Exemplo clássico: elipse e círculo </li></ul>
    5. 5. SRP - Single Responsability Principle Princípio da responsabilidade única ALTA COESÃO <ul><li>Deve existir um e somente UM MOTIVO para que uma classe mude </li></ul><ul><li>Conseqüências </li></ul><ul><ul><li>Baseado no princípio da coesão funcional, uma classe deve ter uma única responsabilidade; </li></ul></ul><ul><ul><li>Se uma classe possuir mais de uma responsabilidade, deve-se considerar sua decomposição em duas ou mais classes; </li></ul></ul><ul><ul><li>Cada responsabilidade é um “eixo de mudança” e as fontes de mudança devem ser isoladas; </li></ul></ul>
    6. 6. Don’t Repeat Yourself (DRY) Não se repita ALTA COESÃO <ul><li>Cada informação e comportamento do seu sistema deve estar em um único lugar sensível. </li></ul><ul><ul><li>Ou seja, não deve existir código repetido através do sistema. </li></ul></ul>
    7. 7. Dependency Inversion Principle (DIP) Princípio da Inversão de Dependência BAIXO ACOPLAMENTO <ul><li>Dependa sempre de interfaces abstratas, e nunca de classes concretas </li></ul><ul><li>Justificativa: </li></ul><ul><ul><li>Implementações concretas são mais propensas a mudanças </li></ul></ul><ul><ul><li>Possibilidade de alterar (ou incluir novas) implementações sem necessidade de alterar classes clientes </li></ul></ul>
    8. 8. Interface Segregation Principle (ISP) Princípio da Segregação de Interfaces BAIXO ACOPLAMENTO <ul><li>Expor o mínimo possível necessário para cada uso de uma determinada classe </li></ul><ul><li>Uma interface pra cada possível tipo de cliente. </li></ul><ul><li>Objetivos: </li></ul><ul><ul><li>Minimizar dependências </li></ul></ul><ul><ul><li>Facilitar compreensão dos módulos clientes </li></ul></ul>
    9. 9. Boas Práticas de OO (Princípios) Msc Luiz Barboza
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×