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.
7. S ingle responsibility Principle
O pen/Closed
L iskov Substitution Principle
I nterface Segregation
D ependency Inversion Principle
domingo, 9 de setembro de 12
8. 1
Single responsability Principle
domingo, 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
26. 3
Liskov Substitution Principle
domingo, 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ódigo
domingo, 9 de setembro de 12
30. Uffa!
Agora entendi...
domingo, 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.html
domingo, 9 de setembro de 12