Отказ от ответственности: Я почти уверен, что видел тот же вопрос прежде, но я не могу найти его теперь. Если кто-то находит, что вопрос, дает ссылку.
Я слышал по крайней мере два мнения о лучшем названии классов, которое реализует операции CRUD: кто-то говорит это DAO
классическое имя, и все знают то, что это означает, но другие говорят это Manager
соответствует намного лучше функциональности CRUD.
Есть ли какие-либо однозначные правила, когда я должен выбрать один или другой (или еще один) имя?
Менеджер мне определенно не нравится; "управление" чем-то может означать (и используется для обозначения) разные вещи. Если вы боитесь, что люди не узнают, что означает DAO, вы всегда можете сформулировать это как «DataAccess», скажем. Но я считаю, что DAO широко понимают.
Другой подход заключается в использовании шаблона репозитория и вызове вашего класса suchAndSuchRepository. Это не обязательно то же самое, что DAO (он может заключать в себе один или несколько DAO), но он может предоставить четко названное место для получения ваших объектов - если мне нужен объект Person, я знаю, что нужно искать PersonRepository .
Я бы сказал менеджер, потому что любые «предположения» могут вызвать некоторый беспредел. И в этом случае, я думаю, вы предполагаете, что каждое тело знает DAO.
+1 для DAO.
Manager - это расплывчато и может применяться ко многим вещам, кроме DAO.
Например, swing.DesktopManager, ErrorManager, FontManager, JavaFileManager, XMLEntityManager - некоторые из 200+ классов, доступных в настоящее время в моей IDE worskapce, ни один из которых, кажется, не имеет ничего общего с сохранением базы данных.