2011-08-31 5 views
2

개체 구성을 위해 파일 시스템에 액세스해야하는 엔티티 팩토리가 있습니다. 팩토리에 주입중인 IFileSystem 인터페이스를 만들었습니다.엔티티 및 인프라 서비스

인프라 서비스를 사용하는 올바른 방법은 무엇입니까? 그렇다면 엔티티 자체의 중요한 메소드가 파일 시스템을 조작해야하기 때문에 엔티티 자체에 대해서도 동일한 작업을 수행하는 것이 좋습니다.

답변

1

작업중인 도메인을 모른 채이 질문에 대답하기가 어렵습니다. 이것은 IDatabase와 같은 것을 주입하는 것과 유사하기 때문에 올바르게 보이지 않습니다. 파일 시스템과 데이터베이스는 지속성 기술이며 도메인 논리는 가능한 한 영구적으로 불가지론 적이어야합니다. 따라서 Ubiquitous Language에 '파일 시스템'개념이 포함되어 있지 않으면이 디자인을 재평가 할 수 있습니다. ICustomerConstructionInfoProvider과 같은보다 도메인 중심적인 용어로 간단하게 의사를 표시 할 수 있습니다. 그런 다음 리포지토리 구현을 주입하는 방법과 유사하게이 인터페이스 구현을 주입하십시오.

+0

도메인은 매우 단순합니다. 나는 백업 파일에 작은 응용 프로그램을 만듭니다. DDD는 어쩌면 잔인한 일일 수도 있지만 학습 과정으로 사용하려고합니다. 그래서 내가 파일 시스템을 저장소의 그것과 비슷하게 생각해야한다고 제안하셨습니까? 관심이있는 파일의 속성을 나타내는 일종의 엔티티가 있습니다. 그리고 파일 시스템을 조작하기위한 CRUD 메소드가 있습니다. –

+0

아니, 필자의 경우 파일 시스템이 인프라가 아닌 것 같습니다. 파일, 폴더 등은 '도메인'의 일부입니다. 아마도 표준 .NET 또는 Java 파일 시스템 클래스 위에 BackupSet 및 BackupJob과 같은 클래스를 직접 구현해야 할 수도 있습니다. – Dmitry

관련 문제