Интерфейсы должны быть в отдельном проекте от их реализации?

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

10
задан Ben Elder 28 October 2009 в 12:32
поделиться

1 ответ

Я с тобой. Я предпочитаю размещать свои интерфейсы в отдельном проекте И в другом пространстве имен. Классический пример - классы доступа к данным. Вы хотите иметь возможность кодировать версию MSSQL и версию MySQL, реализующие один и тот же интерфейс. Поэтому я предпочитаю, чтобы определение интерфейса находилось в отдельной сборке / проекте. Вот пример того, как я размещаю сборки и пространства имен:

  • Elder.DataAccess.Core - содержит интерфейсы и общие утилиты
  • Elder.DataAccess.MSSQL - специфические MSSQL-реализации интерфейсов
  • Elder.DataAccess. Специфичные для MySQL реализации интерфейсов MySQL

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

10
ответ дан 4 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: