Pergunta

im criação de uma classe de fábrica que irá contruct e retornar um objeto. Eu normalmente faria todo o material de dados na camada de acesso de dados, mas eu não acho que eu poderia alcançar o meu objetivo e ainda fazê-lo. O que eu quero fazer é usar um SQLDataReader para ler rapidamente a informação de dados e preencher o objeto a ser retornado da fábrica. É este uma idéia estúpida? Existe uma abordagem melhor? Eu preferiria não apenas retornar um DataSet a partir da DAL, se possível, ou é uma questão de manutenção desempenho vs.?

Foi útil?

Solução

Na maioria dos casos, isso é uma boa idéia, desta forma oferece duas grandes vantagens:

  1. Desta forma, você pode separar o acesso a dados e lógica de negócios, o que significa que se você mudar o projeto de banco de dados os algoritmos da camada superior não precisa ser alterado.

  2. Do ponto de vista OO, você está convertendo alguns dados puros em objetos e pode também acrescentou comportamento para os objetos, o que torna o código mais fácil de manter e reutilizáveis.

Outras dicas

Se você tem certeza que você vai estar usando todos os dados que você carregar a partir do SQLDataReader, então sim, você poderia fazê-lo em tempo de construção na fábrica. No entanto, se o conjunto de dados tem muitos campos, que apenas uma minoria de será usado, em seguida, exigem-carregar os dados no momento em que os acessores são chamados seria uma melhor utilização dos recursos.

Dito isso, eu sugiro que você coloque-o na fábrica quando você tem todas as 'peças' na mão, e se não é exatamente correto, você saberá o que precisa de conserto. Sempre comece com a coisa mais simples que poderia funcionar.

Eu diria que depende do seu uso esperado da fábrica. Se esta é uma fábrica em sua camada de acesso a dados, que será usado para objetos de negócios preencher com dados do banco de dados, então sim este é o lugar para fazê-lo. (O padrão IRepository é algo assim ... tipo de).

Se a sua fábrica não está destinado a viver perto do seu código de acesso de dados, gostaria de mantê-los separados. Lembre-se do Individual de Responsabilidade Princípio : Objetos deve ter apenas uma das razões para a mudança. Se a fábrica está apenas preencher objetos com os dados, então isso é um uso apropriado, no entanto, se for preencher objetos com os dados, além de fazer outras coisas, então é melhor não adicionar o material de dados.

Existem trade-offs Qualquer maneira você vai, de modo geral, eu gostaria de gostaria de manter objetos tão simples quanto possível para o maior tempo possível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top