Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813

    design pattern observer

    ciao a tutti,
    volevo fare una domanda su questo design pattern.
    Oltre al fatto che java mette a disposizione l'interfaccia Observable etc.
    Volevo chiedervi: il sistema che usano i creatori di Java2D, come per esempio l'utilizzo di actionListener, può essere considerato un applicazione di questo design pattern?
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

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

    Re: design pattern observer

    Originariamente inviato da Hysoka
    Oltre al fatto che java mette a disposizione l'interfaccia Observable etc.
    Sì ma nota che Observable/Observer di java.util ha dei lati negativi.
    Innanzitutto Observable è una classe. Il limite principale di ciò è che per poter definire un oggetto che è "osservabile", la sua classe deve estendere per forza Observable.
    A livello concettuale sarebbe sempre meglio definire una interfaccia.

    Un altro aspetto negativo è che setChanged() di Observable è protected. Quindi non si potrebbe usare la "composizione", ovvero una tua classe che ha un riferimento ad un Observable. Insomma ... Observable si può usare solo per estensione.

    Originariamente inviato da Hysoka
    actionListener, può essere considerato un applicazione di questo design pattern?
    A grandi linee sì, i "listener" sono da vedere come un caso molto particolare di utilizzo del pattern observer.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813

    Re: Re: design pattern observer

    Originariamente inviato da andbin
    A grandi linee sì, i "listener" sono da vedere come un caso molto particolare di utilizzo del pattern observer.
    Perché molto particolare? Io sto cercando di capire questo design pattern, che è assai interessante...
    In linea di principio. C'è un certo numero di classi che vogliono essere informati quando una certa classe cambia stato...non è il modo in cui operano i listener? Perché dove tu vedi particolarità, io vedo generalità?
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

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

    Re: Re: Re: design pattern observer

    Originariamente inviato da Hysoka
    non è il modo in cui operano i listener? Perché dove tu vedi particolarità, io vedo generalità?
    Il pattern Observer viene usato nei casi in cui si vuole che oggetti "osservatori" possano essere notificati quando un oggetto "osservabile" cambia stato. Nel caso del "event delegation model" cioè appunto dei listener, gli osservatori ricevono notifica di eventi. Eventi, detti in generale, che non necessariamente hanno a che fare con lo "stato" di qualcosa. Prendi per esempio un KeyListener .... quale è l'oggetto che cambia "stato"??? Semplicemente .... non c'è! Non è uno stato che cambia ... è un evento, "è stato premuto un tasto".

    Ecco perché si dice che i listener sono una forma specializzata e particolare del pattern Observer.

    Tieni sempre presente che i design pattern non sono mai da prendere sempre "alla lettera". Molto spesso la loro applicazione è "sfumata" e può avvenire anche in modi leggermente diversi da quanto magari c'è scritto e riportato su un libro di testo!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    thx...
    sei stato chiaro
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.