Я застрял в разработке хорошего соглашения об именах для уровня обслуживания в приложении spring. Для каждого класса на уровне сервиса я сначала пишу интерфейс, который он должен реализовать, а затем и фактический класс. Так, например, у меня есть следующий интерфейс:
public interface UserAccountManager{
public void registerUser(UserAccount newUserAccount);
public void resetPassword(UserAccount userAccount);
...
}
И затем класс реализации...
Какие ошибки меня здесь, UserAccountManager - хорошее имя для класса реализации, поэтому я вынужден указывать ему глупое имя, например SimpleUserAccountManager или UserAccountDbManager. Каковы некоторые из конвенций, которые вы использовали до сих пор? Является ли хорошей идеей поставить классы реализации в другой пакет и дать им те же имена, что и интерфейсы? И каковы ваши мысли об использовании имен, заканчивающихся в Менеджере над именами, заканчивающимися Сервисом?