Closed JayCesar closed 1 year ago
Checklist • Definição / discussão • Exemplo: estados de um pedido • Conversão de string para enum • Representação UML
Enumerações: É um tipo especial que serve para especificar de forma literal um conjunto de constantes relacionadas!
A palavra chave em Java: enum;
Vantagem: melhor semântica, código mais legível e auxiliado pelo compilador;
Referência: https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
É importante porque uma apliação irá pedir o estado de um pedido e o usuário muito certamente poderá colocar em forma de String.
Uitlizando o método valueOf()
converte para string!
Em um sistema orientado a objetos, de modo geral "tudo" é objeto
Por questões de design tais como organização, flexibilidade, reuso, delegação, etc., há várias categorias de classes:
Views: telas do sistema
Controllers: O cara que faz o meio de campo entre a tela e o sistema;
Entities: Entidades do produto;
Repositories: Objetos responsáveis por acessar dados de um banco de dados qualquer;
Haverão outros tipos de classes no decorrer do curso!
Examples:
É um tipo de associação que permite que um objeto contenha outro;
Relação "tem-um" ou "tem-vários"
Vantagens:
Nota: Embora o símbolo UML para composição (todo-parte) seja o diamente preto, neste contexto estamos chamando de composição qualquer associação tipo "tem-um" e "tem-vários";
Um pedido tem vários ítens (é o asterisco). A seta que começa com diamante preto indica que a calsse do lado do diamente preto é o lado do TODO - ou seja - a classe "ORDER". Logo ele é um TODO e ele contém as partes que são os itens. Ou seja, isso é uma representação de uma composição!
As outras setinhas também indicam uma relação de composição!
Quando eu tiver uma composição "tem muitos", ou seja, uma lista, eu não devo incluir essa lsita no construtor, eu devo cirar ela vazia!
Se eu montar uam String GIGANTE/ ENORME somente com contatenação- funciona! Mas o programa fica lento!
Por isso eu utilizo a classe String Builder porque ela é muito mais otimizada! Ou seja, usada quando eu preciso montar uam string grande a partir de strings pequenas
O StringBuilder vai recebendo vários dados e depois converte tudo de uma vez para String. Isso é melhor e mais eficiente do que ficar contatenando - o que deixa mais lento.
Obs: É importante que o programador consiga enxergar as estruturas dados que ele está criando!
Quando eu faço isso:
Product p = new Product("TV", 1000.00);
OrdemItem oi1 = new OrderItem(1, 1000.00, p);
Eu to dizendo isso para a memória:
Ou seja, eu crio um OrdemItem com uma referência para um produto para esse OrdemItem!
Dessa forma eu consigo navegar entre eles, ou seja, os objetos:
sdf.format("String date") → converte para String! sdf.parse("Date date") → converter para Data!
IMPORTANTE ⚠️
Cada item dentro da Lista OrderItem List
O StringBuilder vai recebendo vários dados e depois converte tudo de uma vez para String. Isso é melhor e mais eficiente do que ficar contatenando - o que deixa mais lento.
🏁 Visão geral do capítulo Enumerações e Composição
Enumerações Enumerações servem para representar vários tipos que compõem CONSTANTES relacionadas! Os estados de um pedido pode ser representados por uma enumeração ou tipo enumerado!
Composição de objetos: Como consigo compor objetos para construir/desenvolver modelos mais complexos.