Classe abstrata

27/08/2012

0

Sei que é básico da OO, mas às vezes nos confundimos. Antes eu tinha isso:

Domain.Entity.Tarefa _Tarefa = new Domain.Entity.Tarefa();

Acontece que a classe Tarefa virou abstrata. Como eu faço agora?
Pjava

Pjava

Responder

Posts

27/08/2012

Pjava

Em realidade eu tenho isso aqui. Não posso instaciar uma classe abstrata, então o que eufaço no lugar de...?

public static Domain.Entity.Tarefa RetornarPorID(Domain.Finder.Tarefa _PesquisarTarefa)
{
SqlConnection _SqlConnection = new SqlConnection();
SqlDataReader _SqlDataReader = null;

try
{
_SqlConnection = DataMapperHelper.AbreConexao();

List<SqlParameter> _ListSqlParameters = new List<SqlParameter>();
_ListSqlParameters.Add(new SqlParameter("IdTarefa", _PesquisarTarefa.IdTarefa));

_SqlDataReader = DAO.DAOBase.RetornarPorID(_SqlConnection, "JP_SEL_TarefaPorFiltro", _ListSqlParameters);

Domain.Entity.Tarefa _Tarefa = new Domain.Entity.Tarefa();

while (_SqlDataReader.Read())
{
Inicializar(_Tarefa, _SqlDataReader);
}

return _Tarefa;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (_SqlDataReader != null)
{
_SqlDataReader.Close();
_SqlDataReader.Dispose();
}

DataMapperHelper.FecharConexao(_SqlConnection);
}
}
Responder

27/08/2012

Pjava

Em realidade eu tenho isso aqui. Não posso instaciar uma classe abstrata, então o que eufaço no lugar de...?

public static Domain.Entity.Tarefa RetornarPorID(Domain.Finder.Tarefa _PesquisarTarefa)
{
SqlConnection _SqlConnection = new SqlConnection();
SqlDataReader _SqlDataReader = null;

try
{
_SqlConnection = DataMapperHelper.AbreConexao();

List<SqlParameter> _ListSqlParameters = new List<SqlParameter>();
_ListSqlParameters.Add(new SqlParameter("IdTarefa", _PesquisarTarefa.IdTarefa));

_SqlDataReader = DAO.DAOBase.RetornarPorID(_SqlConnection, "JP_SEL_TarefaPorFiltro", _ListSqlParameters);

Domain.Entity.Tarefa _Tarefa = new Domain.Entity.Tarefa();

while (_SqlDataReader.Read())
{
Inicializar(_Tarefa, _SqlDataReader);
}

return _Tarefa;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (_SqlDataReader != null)
{
_SqlDataReader.Close();
_SqlDataReader.Dispose();
}

DataMapperHelper.FecharConexao(_SqlConnection);
}
}
Responder

27/08/2012

Marcio [admin]

Responder

27/08/2012

Pjava

É que vídeo eu não consigo abrir aqui na empresa, é proibido, mas farei quando eu chegar em casa.
Responder

27/08/2012

Pjava

Em realidade esse conceito de Abstract factory, ainda não entrou em minha cabeça. Cara, to penando e atrasando a equipe, por falta de entendimento desse assunto. Isso que vc explicou eu entendi, é que até para passar a dúvida não sei como. Preciso implementar uma classe Abstract Factory, tipo, TarefaFactory, lá passar um método tipo Criar(SqlDataReader _SqlDataReader), mais ou menos isso:

_SqlDataReader = DAO.DAOBase.RetornarPorID(_SqlConnection, "JP_SEL_TarefaPorFiltro", _ListSqlParameters);

Domain.Entity.Tarefa _Tarefa = TarefaFactory.Criar(_SqlDataReader);

.......

fazer isso, ou seja, dependendo da tarefa, executar a classe conveniente:

TarefaFactory <- verifca a tarefa e chama outra factory responsável
EnviaEmailFactory <- gera o EnviarEmail
ExecutarDTSXFactory <- gera o ExecutarDTSX

EnviaEmailFactory >> EnviaEmail(Classe que sobreexcreve o método executa para enviar email)

ExecutarDTSXFactory >> xecutarDTSX(Classe que sobreexcreve o método executa para executar DTSX)

E assim sucessivamente.

Isso é que eu não estou conseguindo entender e consequentemente implementar.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar