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

Post on 27-May-2015

2.782 views 1 download

description

Palestra de Vinicius Quaiato no MSTechDay de Lavras.Esta palestra fala sobre o que é e como tirar proveito da Orientação a Objetos através do conhecimento e aplicação dos princípios SOLID.

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

Orientação a Objetos e Princípios SOLID

Utilizando POO com eficiência

Vinicius Quaiato

Desenvolvedor

Pai Santista fanático

.NET Architects

PalestranteBlogueiro

Gonow Tecnologia

Vinicius Quaiato

vinicius.quaiato@gmail.com

@vquaiato

http://viniciusquaiato.comhttp://gonow.com.br

Um

esti

lo de

progra

maçã

o

Um e

stilo

de

progra

maçã

o

Existem diferentes

“estilos”

Existem diferentes

“estilos”

Orientada a Objeto

FuncionalLógica

Estruturada

Procedural

Conceitos chave da POO

Conceitos chave da POO

ClassesClasses

ObjetosObjetos

A primeira classe…

A primeira classe…

O objeto…O objeto…

EstadoEstado

EstadoEstado

Comportamento

Comportamento

Comportamento

Comportamento

Encapsulamento

Encapsulamento

Encapsulamento

Encapsulamento

HerançaHerança

HerançaHerança

PolimorfismoPolimorfismo

PolimorfismoPolimorfismo

Ferramentas

certas?!Ferramentas

certas?!

Tio Bob…Tio Bob…

Princípios SOLIDPrincípios SOLID

Responsabilidade ÚnicaResponsabilidade Única

Responsabilidade ÚnicaResponsabilidade Ú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 ClasseFaça perguntas para a Classe

“Classe, o que você faz?”

Aberto FechadoAberto Fechado

Aberto FechadoAberto Fechado

Uma classe deve estar aberta para extensão e fechada para modificação.

Substituição de

LiskovSubstituição de

Liskov

Substituição de

LiskovSubstituição de

Liskov

Deve ser possível substituir uma classe base

por suas classes derivadas em qualquer ponto

do código.

Segregação de InterfaceSegregação de Interface

Segregação de InterfaceSegregaçã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

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

Sustentabilidade

Vida saudávelVida saudável

CrescimentoCrescimento

Vinicius Quaiato

vinicius.quaiato@gmail.com

@vquaiato

http://viniciusquaiato.comhttp://gonow.com.br