Classe de fábrica - Guardar os objectos
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);
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 ().