SlideShare a Scribd company logo
1 of 57
Orientação a Objetos e  Princípios SOLID Utilizando POO com eficiência
Vinicius Quaiato Desenvolvedor Pai Santista fanático .NET Architects Palestrante Blogueiro Gonow Tecnologia
Vinicius Quaiato [email_address] @vquaiato http://viniciusquaiato.com http://gonow.com.br
 
 
 
 
 
 
 
 
 
 
Um estilo de programação
Existem diferentes “ estilos ” Orientada a Objeto Funcional Lógica Estruturada Procedural
 
 
Conceitos chave da POO
Classes
Objetos
A primeira classe…
O objeto…
Estado
Estado
Comportamento
Comportamento
Encapsulamento
Encapsulamento
Herança
Herança
Polimorfismo
Polimorfismo
 
Ferramentas certas?!
Tio Bob…
Princípios SOLID
 
 
 
Responsabilidade Única
Responsabilidade Única Uma classe ou método deve ter uma única responsabilidade. Indo além, uma classe deve ter uma e apenas UMA razão para mudar.
Faça perguntas para a Classe “ Classe, o que você faz? ”
Aberto Fechado
Aberto Fechado Uma classe deve estar aberta para extensão e fechada para modificação.
Substituição de Liskov
Substituição de Liskov Deve ser possível substituir uma classe base por suas classes derivadas em qualquer ponto do código.
Segregação de Interface
Segregação de Interface Clientes não devem ser obrigados a depender de interfaces que eles não utilizam.
Inversão de Dependência
Inversão de Dependência Módulos de alto nível não devem depender de módulos de baixo nível, ambos devem depender de abstrações. Abstrações não devem depender de detalhes, detalhes devem depender de abstrações.
 
Sustentabilidade
Vida saudável
Crescimento
[object Object],[object Object],[object Object],Extra Info…
Vinicius Quaiato [email_address] @vquaiato http://viniciusquaiato.com http://gonow.com.br
 

More Related Content

Similar to MSTechDay Lavras - Orientação a Objetos e Princípios Solid

Orientação a Objetos e Design Patterns
Orientação a Objetos e Design PatternsOrientação a Objetos e Design Patterns
Orientação a Objetos e Design PatternsVinicius Quaiato
 
Workshop Scrum Developer
Workshop Scrum DeveloperWorkshop Scrum Developer
Workshop Scrum DeveloperJoão Victorino
 
Aula sobre elaboração de projeto de pesquisa
Aula sobre elaboração de projeto de pesquisaAula sobre elaboração de projeto de pesquisa
Aula sobre elaboração de projeto de pesquisaPriscila Valverde
 
Hangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade únicaHangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade únicaPriscila Mayumi
 
A influencia do espaço na criação de espaços de aprendizagem de alta qualidade
A influencia do espaço na criação de espaços de aprendizagem de alta qualidadeA influencia do espaço na criação de espaços de aprendizagem de alta qualidade
A influencia do espaço na criação de espaços de aprendizagem de alta qualidadeLuis Borges Gouveia
 
A influencia do esapço na criação de espaços de aprendizagem de alta qualidade
A influencia do esapço na criação de espaços de aprendizagem de alta qualidadeA influencia do esapço na criação de espaços de aprendizagem de alta qualidade
A influencia do esapço na criação de espaços de aprendizagem de alta qualidadeguestb98b93b
 
Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Carlos Eduardo
 
A inovação começa pelo professor
A inovação começa pelo professorA inovação começa pelo professor
A inovação começa pelo professorProfa Karen Borges
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfpedrina4
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 
Ensinar e aprender engenharia hoje
Ensinar e aprender engenharia hojeEnsinar e aprender engenharia hoje
Ensinar e aprender engenharia hojeFrancisco Restivo
 
PROFESSOR 5.0 - Ferramentas para transformação e reinvenção do professor em s...
PROFESSOR 5.0 - Ferramentas para transformação e reinvenção do professor em s...PROFESSOR 5.0 - Ferramentas para transformação e reinvenção do professor em s...
PROFESSOR 5.0 - Ferramentas para transformação e reinvenção do professor em s...Reinaldo Jr
 
A tecnologia educacional além dos ava's, final
A tecnologia educacional além dos ava's, finalA tecnologia educacional além dos ava's, final
A tecnologia educacional além dos ava's, finalDouglas Assis
 
[Módulo 2] Tema: Interdisciplinaridade
[Módulo 2] Tema: Interdisciplinaridade[Módulo 2] Tema: Interdisciplinaridade
[Módulo 2] Tema: Interdisciplinaridadetecnodocencia_ufc
 

Similar to MSTechDay Lavras - Orientação a Objetos e Princípios Solid (17)

Orientação a Objetos e Design Patterns
Orientação a Objetos e Design PatternsOrientação a Objetos e Design Patterns
Orientação a Objetos e Design Patterns
 
Workshop Scrum Developer
Workshop Scrum DeveloperWorkshop Scrum Developer
Workshop Scrum Developer
 
Aula sobre elaboração de projeto de pesquisa
Aula sobre elaboração de projeto de pesquisaAula sobre elaboração de projeto de pesquisa
Aula sobre elaboração de projeto de pesquisa
 
Hangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade únicaHangout OOD – princípio da responsabilidade única
Hangout OOD – princípio da responsabilidade única
 
A influencia do espaço na criação de espaços de aprendizagem de alta qualidade
A influencia do espaço na criação de espaços de aprendizagem de alta qualidadeA influencia do espaço na criação de espaços de aprendizagem de alta qualidade
A influencia do espaço na criação de espaços de aprendizagem de alta qualidade
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
A influencia do esapço na criação de espaços de aprendizagem de alta qualidade
A influencia do esapço na criação de espaços de aprendizagem de alta qualidadeA influencia do esapço na criação de espaços de aprendizagem de alta qualidade
A influencia do esapço na criação de espaços de aprendizagem de alta qualidade
 
Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1
 
A inovação começa pelo professor
A inovação começa pelo professorA inovação começa pelo professor
A inovação começa pelo professor
 
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdfAPOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
APOO.INT- S01 Paradigma de Orientação a Objetos (2).pdf
 
Aula 01 introdução aoo
Aula 01   introdução aooAula 01   introdução aoo
Aula 01 introdução aoo
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Ensinar e aprender engenharia hoje
Ensinar e aprender engenharia hojeEnsinar e aprender engenharia hoje
Ensinar e aprender engenharia hoje
 
PROFESSOR 5.0 - Ferramentas para transformação e reinvenção do professor em s...
PROFESSOR 5.0 - Ferramentas para transformação e reinvenção do professor em s...PROFESSOR 5.0 - Ferramentas para transformação e reinvenção do professor em s...
PROFESSOR 5.0 - Ferramentas para transformação e reinvenção do professor em s...
 
Unidade 5
Unidade 5Unidade 5
Unidade 5
 
A tecnologia educacional além dos ava's, final
A tecnologia educacional além dos ava's, finalA tecnologia educacional além dos ava's, final
A tecnologia educacional além dos ava's, final
 
[Módulo 2] Tema: Interdisciplinaridade
[Módulo 2] Tema: Interdisciplinaridade[Módulo 2] Tema: Interdisciplinaridade
[Módulo 2] Tema: Interdisciplinaridade
 

More from Vinicius Quaiato

Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?Vinicius Quaiato
 
Throughput, escalabilidade e distribuição global com Cosmos DB
Throughput, escalabilidade e distribuição global com Cosmos DBThroughput, escalabilidade e distribuição global com Cosmos DB
Throughput, escalabilidade e distribuição global com Cosmos DBVinicius Quaiato
 
Meetup Delivering Software - Microsoft Build 2017
Meetup Delivering Software - Microsoft Build 2017Meetup Delivering Software - Microsoft Build 2017
Meetup Delivering Software - Microsoft Build 2017Vinicius Quaiato
 
Microsoft loves open source
Microsoft loves open sourceMicrosoft loves open source
Microsoft loves open sourceVinicius Quaiato
 
Testes de A a Z (em 30 minutos)
Testes de A a Z (em 30 minutos)Testes de A a Z (em 30 minutos)
Testes de A a Z (em 30 minutos)Vinicius Quaiato
 
Soluções escaláveis com Microsoft Orleans e Windows Azure
Soluções escaláveis com Microsoft Orleans e Windows AzureSoluções escaláveis com Microsoft Orleans e Windows Azure
Soluções escaláveis com Microsoft Orleans e Windows AzureVinicius Quaiato
 
Universos Paralelos (saindo da zona de conforto)
Universos Paralelos (saindo da zona de conforto)Universos Paralelos (saindo da zona de conforto)
Universos Paralelos (saindo da zona de conforto)Vinicius Quaiato
 
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoArquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoVinicius Quaiato
 
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoArquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoVinicius Quaiato
 
Orientacao a objetos e design patterns - Secomp Londrina
Orientacao a objetos e design patterns - Secomp LondrinaOrientacao a objetos e design patterns - Secomp Londrina
Orientacao a objetos e design patterns - Secomp LondrinaVinicius Quaiato
 
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiatoVinicius Quaiato
 
Patterns para Windows Azure e Cloud Computing
Patterns para Windows Azure e Cloud ComputingPatterns para Windows Azure e Cloud Computing
Patterns para Windows Azure e Cloud ComputingVinicius Quaiato
 
Windows Phone 7 & Windows Azure
Windows Phone 7 & Windows AzureWindows Phone 7 & Windows Azure
Windows Phone 7 & Windows AzureVinicius Quaiato
 
Mono - .NET além do Windows
Mono - .NET além do WindowsMono - .NET além do Windows
Mono - .NET além do WindowsVinicius Quaiato
 
Mono - .NET além do Windows
Mono - .NET além do WindowsMono - .NET além do Windows
Mono - .NET além do WindowsVinicius Quaiato
 

More from Vinicius Quaiato (20)

Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?Me interessei por Xamarin, e agora?
Me interessei por Xamarin, e agora?
 
Throughput, escalabilidade e distribuição global com Cosmos DB
Throughput, escalabilidade e distribuição global com Cosmos DBThroughput, escalabilidade e distribuição global com Cosmos DB
Throughput, escalabilidade e distribuição global com Cosmos DB
 
Introduction to Xamarin
Introduction to XamarinIntroduction to Xamarin
Introduction to Xamarin
 
Meetup Delivering Software - Microsoft Build 2017
Meetup Delivering Software - Microsoft Build 2017Meetup Delivering Software - Microsoft Build 2017
Meetup Delivering Software - Microsoft Build 2017
 
Microsoft loves open source
Microsoft loves open sourceMicrosoft loves open source
Microsoft loves open source
 
Testes de A a Z (em 30 minutos)
Testes de A a Z (em 30 minutos)Testes de A a Z (em 30 minutos)
Testes de A a Z (em 30 minutos)
 
IdentityServer 4
IdentityServer 4IdentityServer 4
IdentityServer 4
 
Azure WebJobs
Azure WebJobsAzure WebJobs
Azure WebJobs
 
Soluções escaláveis com Microsoft Orleans e Windows Azure
Soluções escaláveis com Microsoft Orleans e Windows AzureSoluções escaláveis com Microsoft Orleans e Windows Azure
Soluções escaláveis com Microsoft Orleans e Windows Azure
 
Functional programming
Functional programmingFunctional programming
Functional programming
 
Universos Paralelos (saindo da zona de conforto)
Universos Paralelos (saindo da zona de conforto)Universos Paralelos (saindo da zona de conforto)
Universos Paralelos (saindo da zona de conforto)
 
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoArquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
 
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius QuaiatoArquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
Arquitetura de Software e o Arquiteto - Secomp Londrina - Vinicius Quaiato
 
Orientacao a objetos e design patterns - Secomp Londrina
Orientacao a objetos e design patterns - Secomp LondrinaOrientacao a objetos e design patterns - Secomp Londrina
Orientacao a objetos e design patterns - Secomp Londrina
 
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato
.Net e arquiteturas modernas - qconsp 2011 - vinicius quaiato
 
Patterns para Windows Azure e Cloud Computing
Patterns para Windows Azure e Cloud ComputingPatterns para Windows Azure e Cloud Computing
Patterns para Windows Azure e Cloud Computing
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Windows Phone 7 & Windows Azure
Windows Phone 7 & Windows AzureWindows Phone 7 & Windows Azure
Windows Phone 7 & Windows Azure
 
Mono - .NET além do Windows
Mono - .NET além do WindowsMono - .NET além do Windows
Mono - .NET além do Windows
 
Mono - .NET além do Windows
Mono - .NET além do WindowsMono - .NET além do Windows
Mono - .NET além do Windows
 

MSTechDay Lavras - Orientação a Objetos e Princípios Solid