Я не уверен, как назвать классы хранилища данных при разработке уровня доступа к данным программ (DAL).
(По типу хранилища данных я имею в виду класс, который отвечает за чтение сохраненного объекта в памяти или сохранение объекта в памяти.)
Кажется разумным назвать класс хранилища данных в соответствии с двумя вещами:
- какие объекты обрабатываются,
- загружает и/или сохраняет такие объекты.
→ Класс, который загружает объекты Banana
, может быть вызван, например. BananaSource
.
Я не знаю, как обойти вторую точку (т.е. бит Source
в примере). Я видел разные существительные, которые, по-видимому, использовались только для этой цели:
- репозиторий: это звучит очень общее. Означает ли это что-то доступное для чтения/записи?
- store: это похоже на то, что потенциально допускает доступ на запись.
- контекст: звучит очень абстрактно. Я видел это с LINQ и объектно-реляционными mappers (ORM).
Постскриптум (несколько месяцев спустя): Вероятно, это подходит для контейнеров, которые содержат "активные" или контролируемые иным образом объекты (на ум приходит модель "Единица работы" ). - ретривер: звучит как что-то только для чтения.
- источник и sink: возможно, не подходит для сохранения объектов; лучше подходит для потоков данных?
- читатель/ писатель: совершенно ясно в своем намерении, но звучит слишком технично для меня.
Являются ли эти имена произвольными или есть общепринятые значения/семантические различия позади каждого? Более конкретно, я задаюсь вопросом:
- Какие имена подходят для хранилищ данных только для чтения?
- Какие имена подходят для хранилищ данных только для записи?
- Какие имена будут соответствовать главным образом хранилища данных только для чтения, которые иногда обновляются?
- Какие имена будут соответствовать главным образом хранилищам данных только для записи, которые иногда читаются?
- Хорошо ли одно имя подходит для всех сценариев?