Некоторые критические замечания по поводу вашего имени ...
Почему в вашем компоненте есть слово «модель», а не немного избыточно.
Поскольку ваш компонент, похоже, является центром обмена сообщениями, почему бы не включить
Сообщение в его названии. Как насчет MessageSender.
Чтобы решить вашу проблему, я бы создал интерфейс и дал ему общее имя, например
MessageSender и реализация, в которой вы включаете технологию в название, например RandomFailingSocketMessageSender.
Если вы хотите получить хороший пример этого, взгляните на библиотеки Java или .Net.
с Java.
интерфейс - класс / реализации ...
Карта - HashMap, LinkedHashMap.
Список - LinkedList
Подробности относительно используемой технологии или структуры, например, такие слова, как «Socket» или, возможно, использование надуманного примера «MQSeries», вообще не должны быть частью имени интерфейса.
MessageSender кажется ИМХО подводит итог цели вашего компонента. Кажется странным, что ваша вещь, которая отправляет «файлы» и «события», не включает эти два описательных слова. Материал, который вы используете в своих именах, является излишним, и IMHO не соответствует вашему описанию компонента.