Differenza observer pull e push

di il
3 risposte

Differenza observer pull e push

Salve a tutti, mi sto cimentando con il design pattern observer e riscontro difficoltà nel comprendere la differenza tra push e pull, in particolare ho fatto un esercizio usando il pull e sto cercando di trasformarlo in push, la differenza se ho capito bene sta nel passare nell'update dell'observer degli argomenti, qualcuno potrebbe chiarirmi questa differenza magari con un esempio, non sono riuscito a trovare niente che mi chiarisca le idee, grazie a chi risponderà.

3 Risposte

  • Re: Differenza observer pull e push

    Parli di C++ o di C# ? Hai sbagliato sezione?
  • Re: Differenza observer pull e push

    Cerca "L16_ObserverPattern.pdf" e "observer-pattern-push-vs-pull-model.html" con google
  • Re: Differenza observer pull e push

    Parlo di c++, nel metodo push il subject invia agli observer tutti i dati riguardanti il suo stato.
    quindi se ho capito bene una differenza nel codice è quella che ho messo qua sotto, il push è tra i comment
    
    class Observer{
    public:
        virtual~Observer(){}
                                    //il metodo update ottiene i valori di stato dal soggetto se fosse stato push
        virtual void update() = 0; //virtual void update(int x, int y, int channels, float transp)
    };
    mentre il concrete subject
    
    class MyImage : public Subject{
    public:
        virtual void notifyObserver() {
            for( auto itr = std::begin(observers); itr != std::end(observers); itr++) {
                (*itr)->update();//*itr->update(_X,_Y,_channels,_transp) se fosse stato push
            }
     private:
        int _X,_Y;//dimensioni immagine               
        int _channels;//canali dell'immagine : 1 = gray, 3 = RGB, etc.
        float _transp; //livello di trasparenza dell'immagine,
        std::list<Observer*> observers;
        }
    
    Ho capito bene?
Devi accedere o registrarti per scrivere nel forum
3 risposte