Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    modello observer observable



    Normalmente quando voglio notificare alla vista un cambio nello stato del modello eseguo questa funzione:

    setChanged();
    notifyObservers(argument)

    se oltre al cambio voglio anche trasmettere un valore faccio:

    setChanged();
    notifyObservers(argument,value)

    Ciò che non capisco ora è come gestire il secondo parametro passato nella funzione update.

    public void update(Observable obs, Object arg) {}

    Per fare ad esepio un:
    switch(value)
    case a: System.out.print(argument);
    ecc....

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,306
    Non mi risulta che notifyObservers() prenda due parametri.
    Documentazione di Observable.

    Esistono due firme per questo metodo: una senza parametri e una con un solo parametro Object (si chiama "overload" del metodo).

    Il metodo senza parametri, fa sì che all'osservatore arrivi un "null" come secondo argomento del metodo update(). Quello con 1 parametro, trasmette il valore del parametro al secondo argomento.

    Chiaro che lo sviluppatore ha facoltà di passare qualsiasi cosa come parametro: nel metodo update() il parametro "arg" è di tipo Object, che dovrà poi essere castato al tipo corretto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: modello observer observable

    Originariamente inviato da java_junior87
    setChanged();
    notifyObservers(argument)
    Observable/Observer in java.util sono la implementazione predefinita fornita dal framework del noto pattern "Observer". Se ne hai possibilità, nessuno ti vieta di fare una tua implementazione, con tue interfacce e classi.

    Tra l'altro la implementazione del framework diciamo che ha dei lati "negativi". In primo luogo Observable è una classe e questo impone di dover estendere esclusivamente questa classe.

    Il concetto espresso dal pattern "Observer" è un concetto generico, ripeto che non ci sarebbe nulla di strano o sbagliato nel fare una propria implementazione, se ci sono necessità particolari oppure se Observable/Observer del framework non calzano a pennello per quello che si vuole fare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.