3 가지 데이터베이스에 의존하는 일부 분석을 수행하는 Windows 양식 응용 프로그램을 작성하고 있습니다. 2 개는 실제로 지리 데이터베이스 (ESRI)이고 하나는 정보의 표준 CRUD 유형 저장소입니다. GeoRefDatabase, GeoResultDatabase 및 RulesDatabase로 각각 호출 해 보겠습니다. 3 가지 데이터베이스 모두에 액세스해야하는 다양한 유형의 분석 클래스가 있습니다 (결국 최대 10 개).내 데이터베이스 (아마도 DI/IoC)를 캡슐화하기 위해 아키텍처를 도와주세요
- GeoRefDatabase는 중앙 집중식으로 이동하지 않습니다. 연결 문자열이 필요합니다.
- GeoResultDatabase는 분석 결과가 저장되는 곳입니다. 그것은 "연결 문자열"이며 실제 위치는 런타임에 (분석이 호출 될 때마다) 다를 수 있습니다. 그 결과 여러 인스턴스가있게됩니다.
- 규칙 데이터베이스는 중앙 집중화되어 있으며 이동하지 않습니다. 연결 문자열이 필요합니다. 질문에 대한 지금
var dbRef = GetDbRef(); var dbRules = GetDbRules(); var dbResult = GetDbResult(myLocation); var z = AnalysisTypeA(dbRef, dbResult, dbRules);
.....
- 어떻게 이러한 데이터베이스를 캡슐화 않습니다 :
그래서 예를 들어, 내가 좋아하는 수 호출 뭔가가되고 싶어? 나는 IoC/DI에 익숙해 져 왔고 그쪽으로 기울고 있지만 최선의 접근 방법이 무엇인지 잘 모릅니다.
Q : 런타임에 다른 데이터베이스를 어떻게 결정합니까? A : 사용자가 기존 데이터베이스 목록에서 선택하거나 새 데이터베이스를 만듭니다. –
해시 맵에 저장하는 것이 이치에 맞습니다. –