Pergunta

Eu tenho uma classe de fábrica que preenche objetos com dados. Eu quero implementar salvando do objeto, mas não querem para preencher o objeto com coisas db -? É estúpido para ter minha fábrica que cria a classe também salvar os dados

ou seja: no meu método .Save () no objeto i chamaria Factory.Save (myObject);

Foi útil?

Solução

Se você está preocupado sobre o material do banco de dados nas aulas? - você considerou usando O / R mapper

Isso manteria o material base de dados inteiramente fora de seu código e seu domínio objetos limpo.

Talvez dar uma olhada NHibernate ou Active Record .

Outras dicas

A classe de fábrica é um padrão criacional que ajuda com a criação de novos objetos.

Existem vários padrões que lidam com objetos persistentes, um dos quais é mapeador de dados http://martinfowler.com/eaaCatalog/dataMapper.html

Este é frequentemente usado em conjection com Repository http://martinfowler.com/eaaCatalog/repository.html

Você pode usar esses padrões para abstrair o banco de dados longe de seu domínio / objetos de negócios, e acessá-los de dentro de seu aplicativo para consulta e salvar objetos.

Assim, o mapeador de dados / repositório é responsável por ambos os aspectos da persistência (preenchimento do banco de dados, e economia de volta ao banco de dados).

Não, não é estúpido em tudo, na verdade, essa é a maneira como todos devem fazê-lo. objeto de negócios não deve conter qualquer lógica de persistência.

Btw, se você estiver usando C # 3.0, então você pode até não se preocupar com a classe de fábrica. Basta criar métodos de extensão. Dessa forma, você ainda pode ter o seu código de persistência isolado do objeto de negócios e ainda ser capaz de chamar myObject.Save ().

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