Поделиться через


Создание приложений с поддержкой взаимодействия

Каждый раз, когда приложение использует один и тот же код для нескольких драйверов, этот код должен быть совместим с этими драйверами. В большинстве случаев это простая задача. Например, код для получения строк с курсором только для пересылки совпадает со всеми драйверами. В некоторых случаях это может быть сложнее. Например, код для создания идентификаторов для использования в инструкциях SQL должен учитывать регистр идентификаторов, кавык, а также однокомпонентные, двухкомпонентные и трехкомпонентные соглашения об именовании.

Как правило, код взаимодействия должен справиться с проблемами поддержки функций и изменчивости функций. Поддержка функций ссылается на то, поддерживается ли определенная функция. Например, не все СУБД поддерживают транзакции, а код взаимодействия должен работать правильно независимо от поддержки транзакций. Вариативность признаков относится к варианту, в котором поддерживается определенная функция. Например, имена каталогов помещаются в начало идентификаторов в некоторых СУБД и в конце идентификаторов в других.

Приложения могут работать с поддержкой функций и изменчивостью функций во время разработки или во время выполнения. Чтобы справиться с поддержкой функций и изменчивостью во время разработки, разработчик смотрит на целевые СУБД и драйверы и гарантирует, что один и тот же код будет взаимодействовать между ними. Как правило, это способ, в котором приложения с низкой или ограниченной совместимостью имеют дело с этими проблемами.

Например, если разработчик гарантирует, что вертикальное приложение будет работать только с четырьмя конкретными СУБД, и если каждая из этих СУБД поддерживает транзакции, приложение не нуждается в коде, чтобы проверка для поддержки транзакций во время выполнения. Он всегда может предположить, что транзакции доступны из-за решения времени разработки использовать только четыре СУБД, каждый из которых поддерживает транзакции.

Чтобы справиться с поддержкой функций и изменчивостью во время выполнения, приложение должно тестировать различные возможности во время выполнения и действовать соответствующим образом. Как правило, это способ, в котором приложения с высокой совместимостью имеют дело с этими проблемами. Для проблем с поддержкой функций это означает написание кода, который делает компонент необязательным или писать код, который эмулирует функцию, если она недоступна. Для проблем с изменчивостью функций это означает написание кода, поддерживающего все возможные варианты.

Этот раздел содержит следующие подразделы.