Orientação a Objetos

Avatar do usuário
bernardino
Site Admin
Mensagens: 805
Registrado em: 28 Ago 2020, 15:11

Orientação a Objetos

Mensagem por bernardino »

01 - Revisitando os paradigmas
02 - O que é ser orientado a objetos
03 - Como pensar em sistemas orientado a objetos?
04 - Atividade

Programar orientado a objetos significa representar estruturas do mundo real no código, onde cada estrutura modelada se torna a especificação de um objeto. Assim como no mundo real, esse estrutura possui características e comportamentos.

Considere uma loja de carejo que deseja implementar um sistema simples de controle de estoque para gerenciar seus produtos. O sistema deve registrar informações básicas dos itens, como nome, categoria, preço e quantidade disponível.
  • Exemplo de controle de estoque com C
  • Simula uma estrutura orientada a objetos com structs
  • Separação de arquivos permite "encapsular" as lógicas e separar responsabilidades
  • Modularização facilita manutenção em projetos mais complexos
Exemplo de controle de estoque com PROLOG
  • Através de "fatos dinâmicos" é possível simular o comportamento de instâncias de classes da 00
  • Os argumentos dos fatos podem ser assimilados aos atributos "características) dos objetos
Exemplo de controle de estoque com Java
  • Há uma abstração clara de um PRODUTO real: possui características e comportamentos
  • A organização facilita o reuso, manutenção e extensão
  • É preciso partir de uma modelagem do mundo real no software, criando representações digitais de objetos do mundo físico ou conceitual.
O que defini um objeto?

Exemplo: um carro pode ser representado como um objeto.

O que define um Objeto?

Na Programação Orientada a Objetos (POO), todos os "carros"

Classe e Instâncias de Classe

Classe: Carro

Define o "molde" para todos os carros e por isso possui as características e comportamentos comuns

Instâncias: Porshe, Fusca, Cadilac, F1: cada carro específico é uma instância ÚNICA da classe Carro Cada instância vai ter suas próprias características como: fabricante modelo, cor etc

Comportamento em comum: Todos os carros possuem comportamentos métodos semelhantes como acelerar, frear, buzinar, ligar o pisca mas as ações podem se comportar de maneiras específicas de acordo com cada tipo de carro.

O que define um objeto

Objetos possuem estado, comportamento e identidade e podem ser simples ou compostos de outros objetos como no caso do Carro, pode conter motores, rodas, transmissão.

Tudo pode ser uma classe?

A garantia de uma estrutura de código limpa dependerá de como os objetos estão colaborando entre si, e para isso a modelagem da classe que deu origem a tal objeto é essencial para que ele execute sua tarefa sem impactar na tarefa de outro objeto.

O que define uma classe

Uma classe deve ser projetada para representar um componente lógico, encapsulando dados e comportamentos e deve ser modelada a partir de sistemas do mundo real.

O design de uma boa classe deve considerar a separação de responsabilidades de cada classe e armazenamento de dados (atributos) e operações (métodos) pertinentes ao contexto de modelagem.

Como Identificar uma Classe para Modelar?

-Dado um contexto do mundo real entenda quem são os atores principais e analise os objetos físicos e ações envolvidas
-Substantivos são fortes candidatos a classes
-Verbos são métodos (comportamentos) em potencial, pois representam ações que podem ser convertidas em comportamentos ou métodos das classes
-Atributos ou características do objeto são as propriedades que determinado substantivo poder apresentar.

Como identificar uma classe para modelar?

-As classes, assim como os elementos no mundo real, possuem um estacionamento:
-Associação entre um cliente de petshop que possui vários pets
-Herança onde um Animal pode ser um cachorro ou gato (elemento mais específico)
-Composição entre um agendamento que poderá conter um serviço.

--

A cidade de Mogi das Cruzes, conhecida por sua diversidade cultural, abriga uma ampla variedade de artistas locais, incluindo cantores, DJs, pintores, dançarinos e artesãos. Para conectar esses artistas com a população, propões-se a criação de uma plataforma digital que permita que os artistas expor seus trabalhos e divulgar seus serviços. No sistema cada artista poderá criar um perfil com informações pessoais, adicionar um portifólio com amostras de suas obras (fotos, vídeos ou descrições) e gerenciar sua disponibilidade.

Contexto para modelagem de classes

A cidade de Mogi das Cruzes possui uma rica diversidade de artistas locais, que atuam em diversas áreas, como:

Cantores e Djs, Pintores, Artesãos (croche, cerâmica, escultura), Dançarinos, Performers em Geral)

A prefeitura deseja criar uma plataforma digital que:

A- Divulgue os artistas locais e seus trabalhos

Obs: Cliente, Contrato, Avaliação, Amostra, Portifólio Artista, Categoria, Contato, Agendamento

Baseado nesse cenáro da Vitrine das Artes, identifique pelo menos 4 classes que podem ser representações do mundo real e para cada classe identificada, coloque as suas características (atributos) que sejam pertinentes ao contexto da plataforma digital dos artistas.
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Responder