Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma...

29

Transcript of Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma...

Page 1: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto
Page 2: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Orientação a copiar e colar

• Existe algo implicitamente errado nisso?

• Quem foi o ordinário que inventou que isso era errado?

• A palavra chave na programação: “ALTERAÇÃO”

Page 3: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

•  Estado

•  Instância/Exemplar

•  Abstração

•  Modularidade

Glossário

Page 4: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Filosofia O.O.

Page 5: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Pascal e os Mundos das ideias

Page 6: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Pensando num mundo ideal...

• E se existisse uma máquina onde bastasse eu configurar, ela geraria quantos objetos eu desejasse?

Page 7: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto com suas interações- para projetar aplicação e programas de computadores

Wikipedia

Page 8: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Olhando os objetos de longeee...

Page 9: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

• Coleção de objetos com diferentes características e comportamentos.

• Cada um resolvendo um pequeno problema

•  Juntos eles interagem para resolver um grande problema

Page 10: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

O comportamento do sistema é algo que emerge das interações entre os objetos

Transcendental

Page 11: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Plugando, removendo e substituindo objetos é possível mudar o comportamento do sistema. Só me preocupo com o que o objeto faça, não como ele faz

Page 12: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Uma teia de objetos

Page 13: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Código procedural é escrito num sentido mais declarativo, definindo quem vai interagir com quem

O foco, no momento desta definição, deveria ser em “o que fazer”, não “como fazer”

Page 14: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Nosso código deveria ser apenas declarativo Os objetos devem ter conexões explícitas

Lembrando...

Page 15: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Coesão

Faça apenas uma coisa!

Page 16: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Acoplamento

Page 17: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Nós só poderemos obter o benefício desta abordagem se os nossos objetos forem facilmente plugáveis

Page 18: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Do outro lado da força...

•  Programas tendem a virar um longa lista de comandos

•  Funções e variáveis são criadas, mas elas tendem a ser globais e serem acessadas por qualquer um

Page 19: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Mas o que era uma classe mesmo..

Classe é um molde que será usado para construir objetos que representam elementos da vida real.

Classe = Características + Comportamentos

Page 20: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Atributos

Atributos armazenam os dados de um objeto, e definem seu estado.

Page 21: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto
Page 22: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Estático e Instância

• Eu preciso de um exemplar de uma pessoa para perguntar sua idade?

• Eu preciso de um exemplar em particular para saber a maioridade?

Page 23: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Brincando com um objeto

Page 24: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Igualdade entre objetos

Page 25: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Navio de Teseu

Page 26: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Polimorfismo

Page 27: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Polimorfismo

Page 28: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Herança

• Clientes •  Funcionários

Page 29: Orientação a copiar e colar · 2017. 2. 19. · Programação orientada a objetos é um paradigma que usando objetos – estrutura de dados consistindo de atributos e métodos junto

Referências

•  http://www.java-samples.com/showtutorial.php?tutorialid=221

•  Design Patterns, by Erich Gamma, et. Al

•  http://www.amazon.com/Growing-Object-Oriented-Software-Guided-Signature/dp/0321503627

•  Schach, Stephen (2006). Object-Oriented and Classical Software Engineering, Seventh Edition