Поскольку никто еще не ответил на вопрос, я опубликую то, что я решил тем временем.
Просто для справки, я в значительной степени решил назвать большинство классов хранилищ данных репозиториев . Во-первых, он кажется самым нейтральным, нетехническим термином из предложенного мною списка, и, похоже, он хорошо соответствует шаблону Репозиторий .
Как правило, «хранилище», кажется, хорошо подходит, когда интерфейсы извлечения / сохранения данных похожи на следующее:
public interface IRepository<TResource, TId>
{
int Count { get; }
TResource GetById(TId id);
IEnumerable<TResource> GetManyBySomeCriteria(...);
TId Add(TResource resource);
void Remove(TId id);
void Remove(TResource resource);
...
}
Другой термин, который я решил использовать, - это provider , который я предпочел бы использовать вместо «хранилища» всякий раз, когда объекты создаются на лету, а не извлекаются из постоянное хранилище или когда доступ к постоянному хранилищу происходит только для чтения. ( Factory также будет уместным, но звучит более технически, и я выбрал технические термины для большинства применений.)
P.S .:: 1026 * Некоторое время прошло с момента написания этого ответа, и у меня было несколько возможностей просмотреть чужой код. Таким образом, я добавил в свой словарь один термин: Сервис , который я резервирую для сценариев SOA: я мог бы опубликовать FooService
, который поддерживается частным репозиторием Foo
или провайдер. «Служба» - это, по сути, просто тонкий общедоступный уровень над ними, который заботится о таких вещах, как аутентификация, авторизация или агрегирование / пакетирование DTO для правильной «краткости» ответов службы.