Как создать plugin архитектуру?
Пытаюсь впервые сделать plugin архитектуру.
С пониманием самой архитектуры у меня сложностей, вроде, нет. Как я понимаю, должен быть некий интерфейс, который и описывается в плагинах. Затем этот плагин помещается в коллекцию плагинов, где контроллер вызывает те или иные методы. Также по добавлению в коллекцию плагин проходит через инжектирование, получая нужные и описанные в спецификации зависимости.
Но есть момент, который я не понимаю из-за малой работы с плагинами в какой-то библиотеке.
Поэтому я и хочу спросить у вас, возможно, вы где-то встречались с подобным и можете описать ход мысли и реализации.
А интересует меня взаимодействие между плагинами, ведь плагины могут взаимодействовать между собой? Если взаимодействуют, то как?