Как организовать конкретный код для одного или нескольких клиентов в своем приложении?

Когда вы реализуете индивидуальный для клиента код, как вы его организуете?

  1. Вы пишете if-выражения прямо в коде? (если (покупатель == 20) то бла-бла)
  2. У вас есть специальная dll, в которую вы помещаете весь код для этого клиента?
  3. Вы программируете своего рода «пользовательские выходы», то есть именованные функции, которые можно перегрузить в отдельной dll?
  4. Или вы используете для этого библиотеку / фреймворк?
  5. Или способ лучше?

person Oliver Abraham    schedule 25.10.2011    source источник
comment
Мы стараемся сделать все как можно более модульным, чтобы, когда кому-то нужен собственный код, мы могли просто вставить дополнительную DLL.   -  person Dirk Dastardly    schedule 25.10.2011


Ответы (1)


У решения if-statement есть недостаток, заключающийся в том, что вам может потребоваться изменить код во многих местах для каждого нового клиента. Лучше всего инкапсулировать поведение, которое вы хотите изменить, в интерфейсе, а затем позволить существующему коду делегировать задачу экземпляру этого интерфейса. После этого дизайн готов к любому количеству различных вариантов поведения.

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

Я бы порекомендовал вам взглянуть на книгу «Гибкое, надежное программное обеспечение: использование шаблонов и гибкая разработка». Он построен вокруг этого самого вопроса.

person Vandhunden    schedule 18.08.2012