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?