POO – Programação Orientada a Objetos

Transcrição

POO – Programação Orientada a Objetos
POO - Programação Orientada a Objetos
POO – Programação
Orientada a Objetos
Padrão BO (Business Object)
Jefferson S. Silva
IFET - PI
Copyright © Jefferson S. Silva
Slide 1
POO - Programação Orientada a Objetos
BO
Imagine
como você faria para evitar que
um cd ou uma música fossem gravados
sem seus respectivos títulos. Você
deveria testar se esse atributo recebeu
algum valor antes do comando salvar.
Copyright © Jefferson S. Silva
Slide 2
1
POO - Programação Orientada a Objetos
BO
E se você quisesse validar outros atributos
para saber se realmente eles não são nulos.
E se você quisesse colocar um regra em que
um cd não pode conter mais que 25 músicas
ou não pode ter duração maior que 1h:30min.
Seria interessante colocar todas essa
regras nas classes TestaCd e
TestaMúsica?
Copyright © Jefferson S. Silva
Slide 3
POO - Programação Orientada a Objetos
BO
É
empregado para separar dados e
lógica de negócio usando um modelo
orientado a objeto.
A classe BO fará, portando, o
encapsulamento das regras de negócio
e do gerenciamento da camada de
persistência (dao).
Copyright © Jefferson S. Silva
Slide 4
2
POO - Programação Orientada a Objetos
BO
A
classe BO é quem vai realizar as
validações e levantar as exceções
quando houver.
– Possui os atributos:
• Dao – objeto de persistência
• Usuário – objeto com a informação de quem
está logado no sistema (logs)
Copyright © Jefferson S. Silva
Slide 5
POO - Programação Orientada a Objetos
BO
Possui
os métodos:
– armazena,
– procura,
– remove
– lista.
– outros
Copyright © Jefferson S. Silva
Slide 6
3
POO - Programação Orientada a Objetos
BO
Vamos
criar nossa primeira classe BO.
Crie o pacote br.com.system.bo no seu
projeto.
Você deve criar uma Classe BO só para
as principais classes do projeto. Não
precisa criar uma classe, por exemplo,
para ItemPedido, pois esse objeto será
validado na classe Pedido.
Copyright © Jefferson S. Silva
Slide 7
POO - Programação Orientada a Objetos
CdBO
package br.com.system.bo;
import java.util.List;
import br.com.system.dao.Dao;
import br.com.system.model.Cd;
import br.com.system.model.Usuario;
public class CdBO {
private final Dao dao;
public Usuario usuario;
public CdBO(Dao dao) {this.dao = dao;}
…
Copyright © Jefferson S. Silva
Slide 8
4
POO - Programação Orientada a Objetos
CdBO
public Cd armazena (Cd dto)throws Exception {
if(dto.getTitulo().equals(""))
throw new Exception("O campo Título
deve ser preenchido");
return (Cd)dao.salva(dto);
}
public Cd procura(Cd dto){
return (Cd)dao.procura(dto.getId(), Cd.class);
}
public void remove (Cd dto)throws Exception{
dao.remove(procura(dto));
}
…
Copyright © Jefferson S. Silva
Slide 9
POO - Programação Orientada a Objetos
CdBO
public List<Object> lista(Cd dto)throws Exception {
return dao.listaTudo(Cd.class);
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
}
Copyright © Jefferson S. Silva
Slide 10
5
POO - Programação Orientada a Objetos
Exercícios 01
Defina mais validações para a Classe
CdBO e altere o método lista para
utilizar critéria,assim faça busca
por:
•Id
•Titulo
•Genero
•Artista
Copyright © Jefferson S. Silva
Slide 11
POO - Programação Orientada a Objetos
Exercícios 02
Crie
as classes BO para Música,
Gênero e Artista
Copyright © Jefferson S. Silva
Slide 12
6
POO - Programação Orientada a Objetos
Exercícios 03
Altere
as classes de Testes para
utilizar a camada BO
Copyright © Jefferson S. Silva
Slide 13
7