Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pattern Observer

ça ne marche pas comme souhaité

    10 décembre 2010 à 12:01:12

    Bonjour à tous,

    J'ai implanté le pattern Observer, mais celui ci ne donne pas signe de vie o_O

    Plus d'explication avec mes classes:
    Classe Main : (rien de bien compliqué

    public class Main {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Observable model = new Model();
    		Fenetre fen = new Fenetre(model);
    		fen.setVisible(true);
    
    	}
    
    }
    

    Classe Fenetre:
    public class Fenetre extends JFrame implements Observer{// J'implémente Observer
    
    
    	  private Observable model;
    	  private int licence_ok;
    	  
    	  
    	
    	public Fenetre(Observable obs){//modèle en argument 
    
    	    
    
    	    this.model = obs;
    	    this.model.addObserver(this); // je place mon écouteur
    	}
    	
    
    	public void showLicence(int licence){ // Pattern Observer
    		this.licence_ok =licence;
    		System.out.println("licence_ok : "+licence);  // Il ne me renvoit rien showLicence ne s'exécute pas
    	}
    }
    

    Classe Observable
    public interface Observable {
    	public void addObserver(Observer obs);
    	public void licenceObserver();
    }
    

    Classe Observer
    public interface Observer {
    	public void accueil();
    	public void showLicence(int licence);
    }
    

    Mon modèle:
    Classe Modele
    public class Model implements Observable{ // J'implémente Observable
    	private ArrayList<Observer> listObserver = new ArrayList<Observer>();
    	private LicenceSerializer licence;
    	private int licence_int;
    	
    	public Model(){
    		this.licence = new LicenceSerializer();
    		this.licence_int = this.licence.getLicence();
    		licenceObserver();
    	}
    	
    
    	
    	public void addObserver(Observer obs) {
    		this.listObserver.add(obs);
    	}
    
    	public void licenceObserver(){  // Je met a jour la licence
    		for(Observer obs : this.listObserver)
    			obs.showLicence(licence_int);
    		System.out.println("Ma licence : "+licence_int);	// Il me renvoi bien la phrase Ma licence : 5
    	}
    
    }
    


    La méthode showLicence ne me renvoi rien !!

    Merci pour votre aide ^^
    • Partager sur Facebook
    • Partager sur Twitter

    Pattern Observer

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown