Как правило, для того, чтобы подчеркнуть предназначение класса,
разработчики включают те или иные слова в их названия.
Для классов, реализующих какой-либо паттерн, название паттерна
включается в название класса, например,
для именования порождающих паттернов используют названия
EnchantedRoomBuilder или
MotifWidgetFactory.
Для обозначения класса, экземпляр которого является
синглетоном(Singleton), порождающим (FactoryMethod) экземпляр класса
(назовем его "
TargetDomainClass"),
являющимся моделью некоторой предметной области часто используется имя "
TargetDomainClassHome".
Так же Home используется в некоторых каркасах приложений, в том числе в
Enterprise Java Beans (EJB) v 2.
В спецификации EJB2 для получения ссылки на серверный компонент(Bean)
необходимо было описать "Home интерфейс", порождающий экземпляр
компонента.
Данное требование было обусловлено техническими возможностями и
ограничениями платформы Java SE на тот момент.
В частности, если архитектура конкретного приложения предполагала
использование вышеупомянутого порождающего паттерна,
к примеру, предполагалось построение удаленного Home-интерфейса,
порождающего объекты типа DTO(Data Transfer Object),
то в системе, как бы это смешно не выглядело, должно было быть два
Home-интерфейса, например,
ConfigurationItemHome и
ConfigurationItemHomeHome.
К сожалению, при распространении технологии J2EE(Java 2
Enterprise
Edition) в широких масштабах, среди рядовых разработчиков возник
неверный стереотип:
"наличие слова Home ≅ связь с EJB2".
Тем не менее слово Home является весьма удобным для именования классов
при реализации порождающих паттернов и отказываться от него было бы
довольно жалко.
Вывод: не выносите поспешных решений относительно той или иной
технологии услышав всего одно знакомое слово - можете пропустить именно
то, что вам нужно.