Java Discrete Event Simulation, как сигнализировать о классе другого объекта

У меня есть класс с именем Neuron, и когда объект Neuron срабатывает, он сигнализирует об срабатывании всех объектов класса Synapse. Я не уверен, как отправить сигнал в Synapse из класса Neuron, кто-нибудь может объяснить?


person Bob Long    schedule 05.04.2016    source источник
comment
Сработал ли для вас какой-либо из двух предложенных ответов?   -  person Paul MacGuiheen    schedule 05.04.2016


Ответы (2)


Класс Neuron может быть источником событий для класса Synapse с помощью PropertyChangeSupport класс. Классы Synapse регистрируются как слушатели, а класс Neuron инициирует событие по мере необходимости.

person Paul MacGuiheen    schedule 05.04.2016

Объект 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...
    }
}
person Mohit Aggarwal    schedule 05.04.2016