SlideShare uma empresa Scribd logo
INTRODUÇÃO A
ORIENTAÇÃO A OBJETOS
"Qualquer um pode escrever um código que
um computador possa entender. Bons
programadores escrevem códigos que seres
humanos possam entender." - Martin Fowler
UM POUCO DE HISTÓRIA
 Uso de goto.
 Dificuldade de compreensão do fluxo de execução.
 Programação estruturada.
 Funções.
CONCEITOS DE ORIENTAÇÃO A
OBJETOS
 Reflete o mundo real.
 Descreve de maneira mais precisa os dados;
 A decomposição é baseada em um particionamento natural; e
 Mais fácil de entender e manter.
 Dados juntos com comportamento.
 Reutilização de código.
CLASSES E OBJETOS
 Classe:
 Abstração de algo do mundo real;
 Possuem estado e comportamento.
 Objeto:
 Entidade concreta;
 Possui os valores para características da classe;
 Realizam comportamentos.
 Exemplo:
 Gato seria uma classe.
 Garfield e Frajola seriam objetos.
CLASSES E OBJETOS
 Se suas classes não representam
abstrações do sistema e são apenas
repositórios de funções, você na
verdade esta programando segundo o
paradigma estruturado.
MODELO ANÊMICO
 Repetição de código, dificuldade de
manutenção, propagação de bugs, e etc.
 Dividido em 3 camadas diferentes, a
 camada de modelo;
 a camada de regras de negócio; e
 a camada de acesso a dados.
MODELO RICO
 “A introdução de abstrações adequadas é a nossa única ajuda
mental para reduzir o apelo à enumeração, para organizar e
dominar a complexidade.” – Edsger Dijkstra
 Favoreça a imutabilidade e simplicidade.
MODELO RICO
When to make a type – Martin Fowler
O que é o modelo anêmico? E por que fugir dele?
- Maurício Aniche

Mais conteúdo relacionado

Semelhante a Introdução a orientação a objetos - Higor Nucci

Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
Iury Teixeira
 
Orientacao a Objetos
Orientacao a ObjetosOrientacao a Objetos
Orientacao a Objetos
Robson Silva Espig
 
Refatoração - aquela caprichada no código
Refatoração - aquela caprichada no códigoRefatoração - aquela caprichada no código
Refatoração - aquela caprichada no código
Juciellen Cabrera
 
Design patterns
Design patternsDesign patterns
Design patterns
Vinícius Krolow
 
Resumão java
Resumão javaResumão java
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
Regis Magalhães
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
César Augusto Pessôa
 
Introdução a programação em python d2
Introdução a programação em python d2Introdução a programação em python d2
Introdução a programação em python d2
Moises de Paula
 
Resource Description Framework (RDF)
Resource Description Framework (RDF)Resource Description Framework (RDF)
Resource Description Framework (RDF)
Jaider Andrade Ferreira
 
Java 02
Java 02Java 02
Java 02
samuelthiago
 
Java 02
Java 02Java 02
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1
Marcelo Zeferino
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
antonio sérgio nogueira
 
Oracle Certified Associate - Java Programmer I - aula 2
Oracle Certified Associate - Java Programmer I - aula 2Oracle Certified Associate - Java Programmer I - aula 2
Oracle Certified Associate - Java Programmer I - aula 2
Jose Berardo
 
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
pedrina4
 
Criando Framework - Conceitos, Estratégias e Dicas
Criando Framework - Conceitos, Estratégias e DicasCriando Framework - Conceitos, Estratégias e Dicas
Criando Framework - Conceitos, Estratégias e Dicas
Norton Guimarães
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
valmon
 
paradigmas de programação
paradigmas de programaçãoparadigmas de programação
paradigmas de programação
D1ogo
 
Paradigmas de Programação
Paradigmas de ProgramaçãoParadigmas de Programação
Paradigmas de Programação
Natanael Simões
 
[Lógica] Orientação a Objetos descomplicada
[Lógica] Orientação a Objetos descomplicada[Lógica] Orientação a Objetos descomplicada
[Lógica] Orientação a Objetos descomplicada
Eduardo Ricoldi
 

Semelhante a Introdução a orientação a objetos - Higor Nucci (20)

Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 
Orientacao a Objetos
Orientacao a ObjetosOrientacao a Objetos
Orientacao a Objetos
 
Refatoração - aquela caprichada no código
Refatoração - aquela caprichada no códigoRefatoração - aquela caprichada no código
Refatoração - aquela caprichada no código
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Resumão java
Resumão javaResumão java
Resumão java
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Introdução a programação em python d2
Introdução a programação em python d2Introdução a programação em python d2
Introdução a programação em python d2
 
Resource Description Framework (RDF)
Resource Description Framework (RDF)Resource Description Framework (RDF)
Resource Description Framework (RDF)
 
Java 02
Java 02Java 02
Java 02
 
Java 02
Java 02Java 02
Java 02
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
Oracle Certified Associate - Java Programmer I - aula 2
Oracle Certified Associate - Java Programmer I - aula 2Oracle Certified Associate - Java Programmer I - aula 2
Oracle Certified Associate - Java Programmer I - aula 2
 
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
 
Criando Framework - Conceitos, Estratégias e Dicas
Criando Framework - Conceitos, Estratégias e DicasCriando Framework - Conceitos, Estratégias e Dicas
Criando Framework - Conceitos, Estratégias e Dicas
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
paradigmas de programação
paradigmas de programaçãoparadigmas de programação
paradigmas de programação
 
Paradigmas de Programação
Paradigmas de ProgramaçãoParadigmas de Programação
Paradigmas de Programação
 
[Lógica] Orientação a Objetos descomplicada
[Lógica] Orientação a Objetos descomplicada[Lógica] Orientação a Objetos descomplicada
[Lógica] Orientação a Objetos descomplicada
 

Introdução a orientação a objetos - Higor Nucci

  • 1. INTRODUÇÃO A ORIENTAÇÃO A OBJETOS "Qualquer um pode escrever um código que um computador possa entender. Bons programadores escrevem códigos que seres humanos possam entender." - Martin Fowler
  • 2. UM POUCO DE HISTÓRIA  Uso de goto.  Dificuldade de compreensão do fluxo de execução.  Programação estruturada.  Funções.
  • 3. CONCEITOS DE ORIENTAÇÃO A OBJETOS  Reflete o mundo real.  Descreve de maneira mais precisa os dados;  A decomposição é baseada em um particionamento natural; e  Mais fácil de entender e manter.  Dados juntos com comportamento.  Reutilização de código.
  • 4. CLASSES E OBJETOS  Classe:  Abstração de algo do mundo real;  Possuem estado e comportamento.  Objeto:  Entidade concreta;  Possui os valores para características da classe;  Realizam comportamentos.  Exemplo:  Gato seria uma classe.  Garfield e Frajola seriam objetos.
  • 5. CLASSES E OBJETOS  Se suas classes não representam abstrações do sistema e são apenas repositórios de funções, você na verdade esta programando segundo o paradigma estruturado.
  • 6. MODELO ANÊMICO  Repetição de código, dificuldade de manutenção, propagação de bugs, e etc.  Dividido em 3 camadas diferentes, a  camada de modelo;  a camada de regras de negócio; e  a camada de acesso a dados.
  • 7. MODELO RICO  “A introdução de abstrações adequadas é a nossa única ajuda mental para reduzir o apelo à enumeração, para organizar e dominar a complexidade.” – Edsger Dijkstra  Favoreça a imutabilidade e simplicidade.
  • 9. When to make a type – Martin Fowler O que é o modelo anêmico? E por que fugir dele? - Maurício Aniche