Как правило, у меня возникает ситуация, когда у данного объекта должно быть много слушателей. Например, я мог бы
class Elephant {
public void addListener( ElephantListener listener ) { ... }
}
но у меня будет много таких ситуаций. То есть у меня также будет объект Tiger
, который будет иметь TigerListener
s. Теперь TigerListener
s и ElephantListener
s совершенно разные:
interface TigerListener {
void listenForGrowl( Growl qrowl );
void listenForMeow( Meow meow );
}
пока
interface ElephantListener {
void listenForStomp( String location, double intensity );
}
Я считаю, что мне всегда приходится заново реализовывать механизм вещания в каждом классе животных, и реализация всегда одна и та же. Есть ли предпочтительный узор?