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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar