Как бы вы, ребята, изящно назвали / окрестили эти классы, предполагая, что префиксы / сульффиксы, такие как I, Impl, Dao и т. Д., Являются плохими соглашениями!
Я знаю, что можно найти много тем о соглашениях об именах,но они больше об этом, чем о том, как обращаться с этими случаями.
Идея состоит в том, чтобы отделить любую возможную реализацию между слоями / модулями и позволить контейнеру обрабатывать инъекции.
- модель : компания
- интерфейс службы компании : ICompanyService
- класс реализации службы : CompanyService реализует ICompanyService
- интерфейс персистентности : ICompanyDao
- класс реализации персистентности : CompanyDao реализует ICompanyDao
Я не могу избавиться от "I" вимена интерфейсов приводят к тому, что интерфейс и реализации будут называться одинаково (я знаю, что можно использовать полное имя, включая пакет, но это даже уродливее).То же самое для CompanyDao.Также та же проблема при удалении сульфоксида DAO из-за имени класса модели.