SlideShare uma empresa Scribd logo
1 de 15
Hangout OOD - Princípio
da Substituição de Liskov
17/06/2014
Apoio
Participantes:
• João Batista Neto – Moderador Hoster
• Priscila Mayumi Sato – Slides
• Ivo nascimento – Controlador do chat
• Luís OtavioDaniel Ribeiro - Ignorado
Pauta
• Repassar o que foi discutido no hangout passado e apontar o link
para a gravação.
• Abordar, com profundidade e exemplos, o princípio de design
O.C.P.
• Aberto mas fechado, como algo pode ser aberto mas fechado?
• Como saber se meu código não está fechado?
• Ilustrar casos do mundo real, através de exemplos em frameworks
ou bibliotecas conhecidas, o uso de L.S.P. e as consequências que
esse uso trouxe para o FW ou biblioteca.
Princípios de design
passados
Princípio Substituição de
Liskov
Substituição de Liskov
• “Classes derivadas devem poder ser substituídas por
suas classes base”
Substituição de Liskov
• “O termo mais importante do principio de Liskov: o
cliente. Quando falamos de OO é a objetos. Temos o
cliente que consome o objeto qualquer. No Liskov
quando o cliente utiliza determinado participante ele
precisa confiar no participante original. Seu
participante consegue não ser alterado pela variação?
Essa é a grande pergunta do Liskov: poder substituir o
participante sem alterar o cliente.” João
Substituição de Liskov
• “Além da assinatura temos a expectativa do retorno.
No pre conditions iremos abortar o input e no pro
conditions iremos abortar output.” Ivo
• “As classes derivas não podem ser mais fortes que as
originais. Por exemplo: um dos parâmetros é um inteiro
e a classe pai determina que ele é entre 1 e 10. A
classe filha não pode restringir de 1 a 4, mas pode de 1
a 15. Essa é a questão do input.” Luiz Otávio
Substituição de Liskov
• “O filho não pode ser mais restritiva que a classe pai.”
Ivo
• “Você pode substituir uma classe por sua classe base. A
pergunta é: qual a consequência dessa substituição”
João
Exemplos
ENVIADOS ANONIMAMENTE PELO PÚBLICO
Sorteio!
PARA QUEM PREENCHEU O FORMULÁRIO
Pôs pauta!
DISCUSSÃO ALÉM DA PAUTA E RESOLUÇÃO DE DÚVIDAS DO PÚBLICO

Mais conteúdo relacionado

Mais de Priscila Mayumi

Banco de dados de grafos
Banco de dados de grafosBanco de dados de grafos
Banco de dados de grafos
Priscila Mayumi
 

Mais de Priscila Mayumi (14)

Do 0 a estar online no Google App Engine
Do 0 a estar online no Google App EngineDo 0 a estar online no Google App Engine
Do 0 a estar online no Google App Engine
 
Sistemas de recomendações e neo4J na cloud computing
Sistemas de recomendações e neo4J na cloud computingSistemas de recomendações e neo4J na cloud computing
Sistemas de recomendações e neo4J na cloud computing
 
Conhecendo o Firefox OS
Conhecendo o Firefox OSConhecendo o Firefox OS
Conhecendo o Firefox OS
 
Oportunidades para desenvolvedores
Oportunidades para desenvolvedoresOportunidades para desenvolvedores
Oportunidades para desenvolvedores
 
PHP no Windows Azure
PHP no Windows AzurePHP no Windows Azure
PHP no Windows Azure
 
Banco de dados de grafos
Banco de dados de grafosBanco de dados de grafos
Banco de dados de grafos
 
Entity framework
Entity frameworkEntity framework
Entity framework
 
Entity framework migrations
Entity framework migrationsEntity framework migrations
Entity framework migrations
 
Entity framework
Entity frameworkEntity framework
Entity framework
 
Trabalhando com banco de dados e Entity Framework
Trabalhando com banco de dados e Entity FrameworkTrabalhando com banco de dados e Entity Framework
Trabalhando com banco de dados e Entity Framework
 
Ninja migrations
Ninja migrationsNinja migrations
Ninja migrations
 
O Mágico Mundo do Entity Framework
O Mágico Mundo do Entity FrameworkO Mágico Mundo do Entity Framework
O Mágico Mundo do Entity Framework
 
Ruby versus Python
Ruby versus PythonRuby versus Python
Ruby versus Python
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 

OOD - Princípio da Substituição de Liskov

  • 1. Hangout OOD - Princípio da Substituição de Liskov 17/06/2014 Apoio
  • 2. Participantes: • João Batista Neto – Moderador Hoster • Priscila Mayumi Sato – Slides • Ivo nascimento – Controlador do chat • Luís OtavioDaniel Ribeiro - Ignorado
  • 3. Pauta • Repassar o que foi discutido no hangout passado e apontar o link para a gravação. • Abordar, com profundidade e exemplos, o princípio de design O.C.P. • Aberto mas fechado, como algo pode ser aberto mas fechado? • Como saber se meu código não está fechado? • Ilustrar casos do mundo real, através de exemplos em frameworks ou bibliotecas conhecidas, o uso de L.S.P. e as consequências que esse uso trouxe para o FW ou biblioteca.
  • 6. Substituição de Liskov • “Classes derivadas devem poder ser substituídas por suas classes base”
  • 7. Substituição de Liskov • “O termo mais importante do principio de Liskov: o cliente. Quando falamos de OO é a objetos. Temos o cliente que consome o objeto qualquer. No Liskov quando o cliente utiliza determinado participante ele precisa confiar no participante original. Seu participante consegue não ser alterado pela variação? Essa é a grande pergunta do Liskov: poder substituir o participante sem alterar o cliente.” João
  • 8. Substituição de Liskov • “Além da assinatura temos a expectativa do retorno. No pre conditions iremos abortar o input e no pro conditions iremos abortar output.” Ivo • “As classes derivas não podem ser mais fortes que as originais. Por exemplo: um dos parâmetros é um inteiro e a classe pai determina que ele é entre 1 e 10. A classe filha não pode restringir de 1 a 4, mas pode de 1 a 15. Essa é a questão do input.” Luiz Otávio
  • 9. Substituição de Liskov • “O filho não pode ser mais restritiva que a classe pai.” Ivo • “Você pode substituir uma classe por sua classe base. A pergunta é: qual a consequência dessa substituição” João
  • 11.
  • 12.
  • 13.
  • 15. Pôs pauta! DISCUSSÃO ALÉM DA PAUTA E RESOLUÇÃO DE DÚVIDAS DO PÚBLICO