Skip to content

Projeto final da disciplina de POO nele eu exploro conceitos avançados de programação orientada a objetos com a linguagem java.

Notifications You must be signed in to change notification settings

HenriquePRA/Vendor-Pop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vendor Pop 📚

Conteúdo

Sobre ℹ️

Feito em 2020, como projeto final da disciplina de programação orientada a objetos neste projeto são explorados conceitos avançados de poo, como herança, polimorfismo, relacionamentos entre objetos (1 para 1, 1 para *, * para *), sobrecarga de métodos e construtores.

  • Produto: guarda os campos id, nome, preço e pedidos (arraylist com os pedidos que tem esse produto), possui getters para todos os campos todavia setters apenas para nomes e preço. dispõe metodos específicos para adicionar ou remover pedidos a sua lista de pedidos.

  • Cliente: guarda os campos, telefone (id), nome, endereço e pedidos (arraylist com os pedidos associados ao cliente), possui getters para todos os seus campos todavia setters apenas para os campos telefone, nome e endereço e dispõe de métodos específicos para adicionar ou remover pedidos a sua lista de pedidos.

  • Pedido: guarda os campos, id (auto incrementado), datahora, valortotal (soma do valor de todos os produtos + entrega), entregador, pago (chave booleana), cliente (objeto cliente), produtos (arraylist com os produtos do pedido).

  • Pedido Express: especialização de pedido que herda todas os atributos e métodos do mesmo, o pedido express possui um atributo taxa entrega assim como getter e setter para essa taxa.

  • Repositório: guarda arraylists para objetos do tipo produto, cliente e pedido. possui métodos para adicionar e buscar objetos as listas de cliente, produto, e pedido. também possui 3 métodos get onde cada um retorna uma das listas de objeto e por fim um método para cancelar pedidos.

  • Fachada: é responsável por criar e realizar a comunicação entre as aplicações (console e gráfica) com o repositório, a fachada realiza testes sobre o que deseja-se adicionar ao repositório assim como para remover, levanta exceção caso os requisitos desses testes não sejam satisfeitos. possui métodos que listam clientes produtos e pedidos com filtros específicos, métodos para alterar o estado de um pedido adicionando e removendo produtos e tornando-o pago.

  • Aplicação Console: é responsável por criar a fachada e realizar os testes necessários a fim de captar exceções antes imprevistas, a aplicação console não interage com o usuário apesar de poder ser executada independentemente da aplicação gráfica.

  • Aplicação Gráfica Swing é por onde o usuário interage com o sistema dispoe de cinco telas principal, criação de pedido, alteração de pedido, pagamento de pedido, cancelamento de pedido e listagem. todas as telas são acessadas a partir da tela principal, todas as telas que requerem interação com o usuário possuem label para display de exceções.

Status do Projeto 👷

Finalizado 🎉

Testes 💻

Para visualizar o projeto em execução basta possuir o Java Runtime Enviroment a partir da versão 8, e executar a tela principal ou aplicação console.

About

Projeto final da disciplina de POO nele eu exploro conceitos avançados de programação orientada a objetos com a linguagem java.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages