Построение операторов SQL DDL: какие шаблоны подходят? - PullRequest
1 голос
/ 01 сентября 2011

Я где-то видел шаблон конструктора, используемый для создания операторов SQL DML.Мне было интересно, какой шаблон (ы) будет (более) подходящим для построения операторов SQL DDL.

Я думаю о простой программе ( Инструмент БД , исключительно для целей самообразования), это создаст ( динамически ) простые операторы SQL DDL.Я не уверен, какие шаблоны следует учитывать.

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

Итак ... какие шаблоны я должен рассмотреть и почему они хороши / лучше в этом случае?

Обновлен для уточнения.

1 Ответ

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

«Ядро» вашего инструмента БД должно представлять знания, которыми оно обладает, в форме, не зависящей от БД, и когда наступит время, код, специфичный для базы данных, вступит во владение и переведет эти знания в специфичный для БД DDL.

Возможно, для этого вам понадобится какое-то внедрение зависимости. Основная идея такова: ядро ​​вашего приложения работает только с интерфейсами и никогда не знает ничего, кроме того, что объявлено в этих интерфейсах. Во время выполнения специфичные для БД объекты, реализующие эти интерфейсы, создаются и «внедряются» в ядро. Создайте, а не слепо «вызывайте» их, как любой другой набор объектов, реализующий тот же набор интерфейсов.

Если требуется поддержка другой БД, Juts создают другой набор классов, которые реализуют эти интерфейсы, и создают их во время выполнения.

Конечно, это всего лишь теория. Вы обнаружите, что между различными системами баз данных существует много нюансов, и я подозреваю, что вам будет сложно представить все это в обобщенном виде ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...