предположим, у меня есть класс А и класс В и интерфейс называется сообщениеМожно ли использовать интерфейс, чтобы говорить с другим классом в java?
public interface Message{
public void sendMessage();
}
public class A implements Message{
@Override
public void sendMessage(){
//call the sendMessage() in class B.
}
}
public class B implements Message{
@Override
public void sendMessage(){
System.out.println("Hola Stack!");
}
}
без непосредственного обращения к классу В может я каким-то образом вызвать метод SendMessage() в классе B из класса А?
Во-первых, вы бы необходимо определить переменную в ClassA, чтобы вы могли ссылаться на объект ClassB. Вместо того, чтобы иметь переменную, напечатанную как «ClassB», введите ot как «Message», затем инициализируйте ее с помощью экземпляра «ClassB», возможно, через DI, чтобы гарантировать, что A не знает о B –
. Эта проблема может быть решена с помощью [event bus] (http://stackoverflow.com/questions/3987391/why-people-use-message-event-buses-in-their-code). Таким образом, отправителю не нужно знать (или заботиться) о том, кто получает сообщения, но все же может активировать действие в принимающем классе (например, B слушает A, когда он видит сообщение, он вызывает свой собственный 'sendMessage()' метод). – azurefrog