2011-09-17 2 views
1

C# 응용 프로그램에서 디자인 문제가 있습니다. 다른 데이터베이스에서 여러 고객에 대한 데이터를 제공하는 DAL이 있습니다. 지금까지는이 데이터베이스는 테이블과 필드 이름이 같았지만 지금은 필드 이름이 영어가 아닌 로케일 언어가되기를 원하기 때문에 다른 필드 이름을 가진 데이터베이스가 하나 있습니다.확장 클래스 초기화 - 디자인 질문

어떻게 해결할 수 있습니까?

현재 응용 프로그램 아키텍처는 공장을 기반으로합니다. 그래서 나는 이것을 가지고있다 :

BusinessFactory은 DAL을 initialize하기 때문에 DAL을 확장 한 다음 데이터베이스 필드 이름을 변경해야하는 곳에서 함수를 재정의하고 확장 클래스에서 새로운 함수를 작성해야한다. 하지만이 확장 클래스를 언제 초기화해야합니까?

DAL은 인터페이스에 따라 다르므로 BusinessFactory에서 처리 할 수 ​​없습니다.

이 문제에 대한 해결책으로 DAL을 확장하는 것에 대해 모두 잘못되어 있으면 다른 방향을 알려주십시오.

답변

0

당신은 어느 db를 연결할 것인지를 결정하는 기준으로 클라이언트 -> db 매핑이 있어야한다고 생각합니다.

따라서 데이터베이스에서 가져와야하는 열 이름을 파악하기 위해 사전 프로세서 계층을 도입 할 수 있습니다. 그래서 기본적으로 당신은 당신이 사용할 수있는 클라이언트 설정 (그리고 기본 설정)을 유지할 것입니다.

0

간단한 해결책은 클라이언트가 원하는 언어로 열 이름이있는 뷰를 만드는 것입니다. 이렇게하면 응용 프로그램을 변경할 필요가 없습니다.