Это абсолютно нормально. У меня есть специализированные классы данных (которые также имеют некоторые бизнес-логики c), которые реализуют один стандартный тип и имеют различные внутренние объекты по другим причинам.
Будьте осторожны, чтобы не создавать не поддерживаемый код. Для этого вы можете использовать такие инструменты, как SonarQube. Проверьте, когда вы используете (много) классов, как много вы используете - другими словами, насколько ваш класс зависит от других интерфейсов, классов, унаследованных методов? См. Например http://tutorials.jenkov.com/ood/understanding-dependencies.html