Tecnologia do Blogger.
RSS

[androidbrasil-dev] Re: Conceito POO - Override/Overload

Opa, muito obrigado a todos.


Esclareceram minhas dúvidas.
Então a classe de Persistencia não podia ser abstrata porque ela é responsável por chamar os comandos de banco de dados, ela que faz essa comunicação com a classe do BD.

No métodos de gravação de Pedido e PedidoItem eu apenas carrego os atributos da Persistencia e chamo o super.grava().
Funcionou normalmente.

Exemplo método Grava() da classe Pedido:

@Override
public void Grava(){
if (this.getItensCount() <= 0) {
//Exceção não implementada.
} else{

this.setContexto(this.getContextoPedido());
this.Dados = new ContentValues();
this.setTabela(this.getClass().getSimpleName());
this.setTabelaColunaComposta(null);
this.setTabelaSelecao("Numero = " + this.getNumero().toString());
this.Status = eStatus.Insert;
this.Dados.put("Numero", this.getNumero().toString());
this.Dados.put("Data", this.getData().toString());
this.Dados.put("Emissao", this.getEmissao().toString());
this.Dados.put("Comprador", this.getComprador().toString());
this.Dados.put("Representante", this.getRepresentante().toString());
this.Dados.put("TipoPedido", this.getTipoPedido().toString());
this.Dados.put("TipoFaturamento", this.getTipoFaturamento().toString());
this.Dados.put("TipoFrete", this.getTipoFrete().toString());
this.Dados.put("Obs", this.getObs().toString());
this.Dados.put("EmpDestinataria", this.getEmpDestinataria().toString());
this.Dados.put("FormaPagamento", this.getFormaPagamento().toString());
super.Grava();
for(int i = 0; i < this.getItensCount(); i++) {
this.Itens.get(i).Grava();
}
}
}

Creio que agora ficou correto.

Eu estou tendo um outro problema, com a classe PedidoItem pois ela implementa Parcelable (Eu preciso transmiti-lá entre as activities e carregá-la em um listview). E eu dependo do Context para carregá-lo na persistência para utilizá-lo no construtor do SQLite para persistir os dados.
Não sei exatamente como costumam trabalhar com o Context neste caso com SQLite.
Mas não estou conseguindo passar o Context ou encontrar uma maneira ideal e conceitualmente correta para passá-lo via Parcel.
Estou procurando algo na internet, mas se não encontrar acho que o ideal era abrir um outro tópico para ver se alguém teve problema semelhante.

Obrigado a todos pela ajuda.

On Monday, November 26, 2012 9:03:07 AM UTC-2, Guilherme Bernardi wrote:
Bom dia pessoal.

Estou desenvolvendo um aplicativo utilizando uma classe de persistência. Que seria a super classe e as demais classes herdam ela para persistir os dados no banco. Sou novato em programação POO e estou com dúvidas em um conceito e como fazer isto no Java para que ele interprete da maneira correta, se alguém puder me ajudar ou pelo menos explicar ficarei muito grato.

Seguinte:

Eu tenho uma classe de Persistencia, que possui o método Grava(). Neste método ele seta o banco e verifica um status Enum que eu controlo dentro das classes de atributos o que ele deve fazer, Insert, Update e Delete e executa a ação no banco.

E eu tenho 2 classes, Pedido e PedidoItem que herdam a classe de Persistencia.
Ambas tem o método Grava() também, mas assumem assinaturas diferentes:

- Método Grava() da Classe Pedido é responsável por carregar os dados na persistência e efetuar a sua gravação e já contar os itens chamando o método Grava() da classe PedidoItem para gravar item a item. O detalhe é que ambas as chamadas de Grava() devem carregar os dados e chamar o método da Persistencia. Mas em termos conceituais devo ter feito algo bem errado, gostaria de saber qual é o certo e como funcionaria.

Obrigado desde já.

--
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário