Инициализировать расширение класса - вопрос дизайна - PullRequest
1 голос
/ 18 сентября 2011

У меня проблема с дизайном в моем приложении C #. У меня есть DAL, который предоставляет данные для нескольких разных клиентов из разных баз данных. До сих пор эти базы данных имели одинаковые таблицы и имена полей, но теперь у меня есть одна база данных, которая имеет разные имена полей, потому что клиент хочет, чтобы имена полей были языкового стандарта вместо английского.

Как мне решить эту проблему?

Моя текущая архитектура приложений основана на фабриках. Итак, у меня есть это:

BusinessFactory инициализирует DAL, поэтому моей первой мыслью было просто расширить DAL, а затем переопределить функцию, в которой необходимо изменить имена полей базы данных, и создать новую функцию в расширяющем классе. Но когда я должен инициализировать этот расширяющий класс?

Я не могу сделать это из моего BusinessFactory, потому что DAL зависит от интерфейса.

Пожалуйста, также укажите мне другое направление, если я совершенно не прав относительно расширения DAL в качестве решения этой проблемы.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2011

Простым решением было бы создание представлений с именами столбцов на языке, который желает ваш клиент. Таким образом, вам не нужно менять приложение.

0 голосов
/ 18 сентября 2011

Я думаю, что у вас должно быть отображение клиента -> db, на основе которого вы решаете, к какому БД подключиться.

Таким образом, вы можете ввести уровень препроцессора, чтобы выяснить имена столбцов, которые вынужно получить из базы данных.Таким образом, в основном вы сохраните конфигурацию для каждого клиента (и конфигурацию по умолчанию), которую вы можете использовать.

...