Не видя больше вашего кода, трудно сказать, насколько отделен ваш код. События являются одним из способов развязки кода, но также могут усложнить понимание и отладку кода.
При разработке классов высокая когезия означает, что многие методы повторно используют друг друга, а низкая связь означает, что вам нужно всего лишь выставить несколько открытых методов.
При разработке пакетов высокая когезия означает, что многие классы в пакете зависят друг от друга, а низкая связь означает, что только некоторые из них являются публичной областью действия или сообщением с другими классами через интерфейсы.
Преимущества высокого сцепления и низкого сцепления должны быть меньше боли, особенно когда речь идет о реагировании на изменения. Если это не уменьшает боль, не тратьте много времени на ее оптимизацию. Я знаю, это звучит так, как будто я излагаю здесь банальности, но вы должны помнить свою метрику при измерении того, является ли высокая сплоченность и слабая связь «достаточно хорошей», а не полагаться на мнения людей, которые не обязательно понимают проблема, которую вы пытаетесь решить.