Как хотите, так и сделайте - людям в интернете без разницы, поддерживать этот код будете вы.
С точки же зрения теории есть две противоположных, но одинаково имеющих право на существование, теории: не нужно усложнять и не нужно усложнять.
Первая говорит о том, что не следует плодить сущности без необходимости, т.е. лучше оставить один компонент, если его структуру можно универсально описать. Тогда можно будет легко добавлять новые типы объектов без необходимости изменения кода.
Вторая говорит о том, что сложную задачу следует раздробить на несколько простых. И в этом случае вы делаете простые специализированные компоненты, пусть даже в них будет какое-то дублирование. Тогда можно будет легко разбираться с кодом каждого конкретного типа объектов, но добавление новых потребует изменения кода.
А между этими двумя крайностями есть целый спектр промежуточных решений.
В комментариях, я уверен, найдутся сторонники каждого из подходов и будут объяснять друг другу, что именно их подход является единственно верным. Выберите того, кто кажется вам наиболее убедительным (оба будут неправы, потому что решение зависит от особенностей конкретного проекта) и поступите как он советует. По мере создания всё новых и новых проектов вы будете понимать ограничения выбранного подхода и проблемы, которые он создаёт и попробуете диаметрально противоположный. Потом вы увидите и его ограничения и с этого момента можете добавлять в резюме приставку senior.