Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 12 - Desenvolvendo uma livraria virtual – Parte 1

Modelagem do armazenamento dos livros e do sistema II

Essa operação pega uma lista como parâmetro e retorna uma lista com os mesmos elementos, porém, seus métodos de modificação da lista (adicionar e remover) irão levantar uma exceção se executados. Isso é opcional, mas garante que apenas a lista original, guardada pela classe Livraria, poderá ser modificada. Essa garantia nos permite saber que apenas métodos da classe Livraria podem adicionar ou remover livros da lista, evitando que essas operações sejam executadas “sem querer” por outras partes do código que tiveram acesso a ela pelo método getLivros().

Outro método de busca disponível é o getLivro(), o qual recebe um código e retorna o livro relacionado àquele código (linhas 50 a 52) ou levanta a exceção LivroNaoEncontradoException (linhas 55 a 58), caso não exista no estoque nenhum livro com o código passado. Essa exceção foi definida por nós e seu código é visto mais adiante, na Listagem 5.

Listagem 4.2 - Implementação da classe Livraria – Parte 2

Por fim, a classe Livraria possui métodos relacionados à compra de livros. O primeiro deles é o método comprarLivros(), que recebe como parâmetro um carrinho de compras contendo os livros selecionados pelo usuário. Esse método é apresentado na Listagem 4.3, linha 63. Basicamente, os produtos contidos no carrinho são analisados (linhas 67 a 73) um por um, e, para cada livro, o método comprarLivro() é executado. Esse método é mostrado na linha 76 e, dado o código de um livro e a quantidade a ser comprada, é responsável por:

  • Verificar se o livro existe no estoque (linhas 79 a 83).
  • Pegar a quantidade de livros em estoque (linha 83).
  • Verificar se o estoque é suficiente para atender a quantidade de livros a ser comprada (linha 87), lançando uma exceção, caso o estoque seja insuficiente (linhas 91 e 92). Esse caso pode ocorrer quando vários usuários tentam comprar o mesmo livro ao mesmo tempo, numa quantidade de estoque satisfatória para cada cliente individualmente, mas superior ao estoque no total dos vários usuários.
  • Debitar do estoque a quantidade vendida do livro (linha 88 e 89).
Listagem 4.3 - Implementação da classe Livraria – Parte 3

Versão 5.3 - Todos os Direitos reservados