Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jalber Romano

Problema ao implementar métodos abstratos

Recommended Posts

Bom dia pessoal!


Estou fazendo um projeto para meu TCC e estou com uma dúvida sobre Orientação a objetos.


Meu projeto possui várias classes no qual deverão possuir os mesmos métodos: novo(), incluir(), alterar(),excluir(),etc.


Eu criei uma classe abstrata chamada ModeloCRUD no qual eu especifico todos os métodos que eu quero e eles obrigatoriamente serão implementados em todas as outras classes.


Estou com problemas ao implementar dois métodos na classe ModeloCRUD: public abstract List<> ExecutarSelectListarRegistros() e public abstract SelecionarUmRegistro(). Não sei como especificar o retorno deles.


Por quê?


Na classe Professores eles são implementados assim:


public List<Professores> ExecutarSelectListarRegistros()

public Professores SelecionarUmRegistro(int Codigo)


Na classe Avaliações eles são implementados assim:


public List<Avaliações> ExecutarSelectListarRegistros()

public Avaliacoes SelecionarUmRegistro(int Codigo)


E assim sucessivamente para as outras classes.


Como implemento isso na classe Abstrata Modelo CRUD?


Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode chamar por método simples, sem precisar de listas e retornar um DataTable, ao invés de usar o public list, use public datatable, crie 4 métodos CRUD com parâmetros de constring e Query, depois retorne o datatable.

Compartilhar este post


Link para o post
Compartilhar em outros sites

KhaosDoctor, obrigado por ter respondido. Estou iniciando agora programação... não entendi direito o que vc quis dizer... se eu enviar o projeto pra vc analisar, vc me mostra como implementar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente não posso fazer isso... O que eu quis dizer é que ao invés de você usar várias funções para fazer a query e complicar tudo, você pode simplesmente executar por SQLCommand.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah tá.. entendi agora o que vc quer dizer.... poderia fazer o seguinte:

 

Na tabela MOdeloCRUD criaria o método public DataTable ExecutarSelectListarRegistros() e na tabela Professores que herdará as características, eu implementaria o método DataTable ExecutarSelectListarRegistros(); Mudaria apenas a query para trazer apenas um registro ou vários registros quando necessário.

 

 

Obrigado pela dica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi a sua lógica Klaus, mas o problema é que tem quer ser orientado a objetos e eu tenho uma classe chamada Professores que possui o metodo public List<Professores> ExecutarSelectListarRegistros(). Este método recebe um datareader que preenche a Lista<Professores> no qual precisa retornar uma lista de professores.

 

Na classe Abstrata ModeloCrud tenho o metodo List<?> ExecutarSelectListarRegistros()... o problema é que o retorno na classe ModeloCrud tem que ser do tipo class e eu nw sei implementar isso.. ta dando erro. Nw to conseguindo fazer com o datatable....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas você nunca vai conseguir retornar uma class quando o modelo é database, se você quer o registro de dados do banco então você precisa retornar estes registros, ou então retornar uma lista.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Khaos,

Desculpa pegar o bonde andando, só pra tirar uma duvida rápida...é que nos meu programas eu utilizo uma classe, onde nela armazeno todos os métodos a serem utilizados no programa. Só que tipo, cada Query no SQL eu uso um método e parametrização para fazer, isso está "errado"?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, na verdade isso é o mais correto, utilizar um método generalizado que aceite um parâmetro como uma query e executar em um banco também parametrizado, ou seja, você pode acessar qualquer bano e qualquer query com um só método sem a necessidade de ficar criando objetos para cada um. Porém o retorno destes métodos não pode ser uma classe, mas sim um DataTable ou um DataSet

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.