Java Discrete Event Simulation, как сигнализировать о классе другого объекта
У меня есть класс с именем Neuron, и когда объект Neuron срабатывает, он сигнализирует о срабатывании всех объектов класса Synapse. Я не уверен, как отправить сигнал в Синапс из класса Нейрон, кто-нибудь может объяснить?
2 ответа
Класс Neuron может быть источником событий для класса Synapse с помощью класса PropertyChangeSupport. Классы Synapse регистрируются как слушатели, а класс Neuron запускает событие по мере необходимости.
Объект Neuron должен содержать список всех экземпляров объекта Synapse, только тогда он сможет отправлять события или сигналы объектам Synapse. Это похоже на шаблон Observer. Чтобы дать вам представление о том, как это будет работать, см. Следующее
class Neuron {
List<Synapse> subscribers = new ArrayList<>();
private Neuron neuron;
private Neuron(){}
public static Neuron getInstance(){
if(neuron == null)
neuron = new Neuron();
return neuron;
}
public void addSubscribers(Synapse s){
subscribers.add(s);
}
public void fireEvent(Event x){
for(Synapse s: subscribers){
subscriber.notifyEvent(x);
}
}
}
class Synapse{
public void subscribe(){
Neuron.getInstance().subscribe(this);
}
public void NotifyEvent(Event x){
//to somthing...
}
}