SOLID Principles
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

SOLID Principles

on

  • 972 views

Apresentação sobre os princípios SOLID que fiz no Agile Brazil 2012 em São Paulo. ...

Apresentação sobre os princípios SOLID que fiz no Agile Brazil 2012 em São Paulo.
Tenha orgulho do seu código. Aprenda SOLID!
Os princípios SOLID são cinco princípios básicos de programação e design orientados a objeto, introduzidos por Uncle Bob no início de 2000. Aplicados em conjunto, estes princípios o tornarão um desenvolvedor diferenciado, capaz de escrever um código extensível, coeso e de fácil manutenção.

Statistics

Views

Total Views
972
Views on SlideShare
970
Embed Views
2

Actions

Likes
2
Downloads
8
Comments
0

2 Embeds 2

http://twitter.com 1
https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

SOLID Principles Presentation Transcript

  • 1. S.O.L.I..D Principles Por Ismael Soares @ismaelsoaresz Agile Brazil 2012domingo, 9 de setembro de 12
  • 2. SOLID são princípios básicos (boas práticas) da Programação Orientada a Objetodomingo, 9 de setembro de 12
  • 3. Não é exclusividade de nenhuma linguagem de programaçãodomingo, 9 de setembro de 12
  • 4. Por que devo saber SOLID?domingo, 9 de setembro de 12
  • 5. Você precisa fazer a coisa certa do jeito certo!domingo, 9 de setembro de 12
  • 6. domingo, 9 de setembro de 12
  • 7. S ingle responsibility Principle O pen/Closed L iskov Substitution Principle I nterface Segregation D ependency Inversion Principledomingo, 9 de setembro de 12
  • 8. 1 Single responsability Principledomingo, 9 de setembro de 12
  • 9. Principle Uma Classe deve possuir apenas um motivo para ser alterada, ou seja, possuir apenas uma responsabilidade.domingo, 9 de setembro de 12
  • 10. O que faz esta classe?domingo, 9 de setembro de 12
  • 11. Gera Frete e Ajusta o Contador e Obtem Nota e...domingo, 9 de setembro de 12
  • 12. Devemos separar as funcionalidades em classes distintas. public class GeradorDeNotaFiscalDeFrete {} public class AjustadorDeContadorDeNumeracaoDeNotaFiscal {} public class ConsultaDeNotaFiscalService {} ...domingo, 9 de setembro de 12
  • 13. Porque quando você fizer uma alteração, vai procurar a classe responsável.domingo, 9 de setembro de 12
  • 14. 2 Open/Closeddomingo, 9 de setembro de 12
  • 15. Principle Uma classe deve estar aberta para extensão, mas fechada para alteraçãodomingo, 9 de setembro de 12
  • 16. Crédo... que diabos é isso?domingo, 9 de setembro de 12
  • 17. domingo, 9 de setembro de 12
  • 18. domingo, 9 de setembro de 12
  • 19. Tem alguma coisa errada com este código?domingo, 9 de setembro de 12
  • 20. Como incluir uma nova Forma sem alterar o método que a desenha?domingo, 9 de setembro de 12
  • 21. Lascô...domingo, 9 de setembro de 12
  • 22. domingo, 9 de setembro de 12
  • 23. domingo, 9 de setembro de 12
  • 24. domingo, 9 de setembro de 12
  • 25. domingo, 9 de setembro de 12
  • 26. 3 Liskov Substitution Principledomingo, 9 de setembro de 12
  • 27. Principle "Se você pode invocar um método q() de uma classe T (base), deve poder também invocar o método q() de uma classe T(derivada) que é derivada com herança de T (base)."domingo, 9 de setembro de 12
  • 28. Agora Lascô de vez!domingo, 9 de setembro de 12
  • 29. Deve ser possível substituir uma classe base por uma classe derivada em qualquer ponto do códigodomingo, 9 de setembro de 12
  • 30. Uffa! Agora entendi...domingo, 9 de setembro de 12
  • 31. Exemplodomingo, 9 de setembro de 12
  • 32. Correto!domingo, 9 de setembro de 12
  • 33. 4 Interface Segregationdomingo, 9 de setembro de 12
  • 34. Principle É melhor ter muitas interfaces específicas do que ter uma interface genérica.domingo, 9 de setembro de 12
  • 35. Vamos ao exemplo...domingo, 9 de setembro de 12
  • 36. Seu gerentedomingo, 9 de setembro de 12
  • 37. E lasquera a fábrica tá bondando!domingo, 9 de setembro de 12
  • 38. Correto!domingo, 9 de setembro de 12
  • 39. Correto!domingo, 9 de setembro de 12
  • 40. 5 Dependency Inversion Principledomingo, 9 de setembro de 12
  • 41. Principle Módulos de alto nível não devem depender de módulos de baixo nível, devem depender de abstrações.domingo, 9 de setembro de 12
  • 42. Tá... i dai?domingo, 9 de setembro de 12
  • 43. Abstrações não devem depender de detalhes, detalhes devem depender de abstrações.domingo, 9 de setembro de 12
  • 44. Exemplodomingo, 9 de setembro de 12
  • 45. domingo, 9 de setembro de 12
  • 46. Quebrando o princípiodomingo, 9 de setembro de 12
  • 47. Corretodomingo, 9 de setembro de 12
  • 48. domingo, 9 de setembro de 12
  • 49. Obrigadodomingo, 9 de setembro de 12
  • 50. References http://www.slideshare.net/fullscreen/andrefaria/solid-princpio-da-responsabilidade-nica/1 http://viniciusquaiato.com/blog/srp-single-responsibility-principle/ http://en.wikipedia.org/wiki/Single_responsibility_principle http://www.macoratti.net/11/05/oop_opc1.htm http://www.javacodegeeks.com/2011/11/solid-liskov-substitution-principle.html http://www.oodesign.com/interface-segregation-principle.htmldomingo, 9 de setembro de 12