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
- 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
- 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.
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.