2008-10-10 4 views
5

데이터가있는 객체를 채우는 팩토리 클래스가 있습니다. 개체에서 저장을 구현하고 싶지만 db 개체로 개체를 채우고 싶지 않습니다. 클래스를 만드는 내 공장도 데이터를 저장하도록하려면 어리석은 짓입니까?팩토리 클래스 - 객체 저장

예 : 개체의 내 .Save() 메서드에서 Factory.Save (myObject)를 호출합니다.

답변

3

클래스의 데이터베이스 항목에 관심이 있으시면 O/R 매퍼 사용을 고려해 보셨습니까?

이렇게하면 코드와 데이터베이스 개체가 완전히 삭제됩니다.

NHibernate 또는 Active Record을 참조하십시오.

2

아니, 전혀 바보가 아니야, 사실, 어떻게 그렇게해야하는지. 비즈니스 객체에는 퍼시스턴스 로직이 없어야합니다.

Btw, C# 3.0을 사용하는 경우 Factory 클래스에 신경 쓰지 않을 수도 있습니다. 확장 메소드를 작성하십시오. 그렇게하면 비즈니스 객체에서 분리 된 퍼시스턴스 코드를 유지하면서 myObject.Save()를 호출 할 수 있습니다.

+0

혼자서 첫줄을 올리려면 찬성표를 던지십시오. 나는 사람들에게 지금 오랫동안 설득하려고 노력해 왔습니다. – ckramer

+0

나중에 공장이라고 부르지 마십시오. 공장이 무엇인지 아는 사람들이 혼란 스러울 것입니다. – jop

6

팩토리 클래스는 새 객체를 만드는 데 도움이되는 생성 패턴입니다.

데이터 맵퍼에게 그 중 하나는 지속 객체를 다루는 다양한 패턴이있다 http://martinfowler.com/eaaCatalog/dataMapper.html

이것은 종종 데이터베이스를 추상화에이 패턴을 사용할 수 있습니다 http://martinfowler.com/eaaCatalog/repository.html

저장소에 conjection에 사용된다 귀하의 도메인/비즈니스 개체에서 추출하고 개체를 쿼리하고 저장하기 위해 응용 프로그램 내에서 액세스하십시오.

따라서 데이터 매퍼/저장소는 지속성 (데이터베이스에서 채우기 및 다시 데이터베이스로 저장) 측면 모두를 담당합니다.