Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-03-2008, 22:45   #1
cisc
Senior Member
 
L'Avatar di cisc
 
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
Introduzione Observer Pattern

ho già accennato l'idea nel thread "Refactor This!", magari è meglio parlarne a parte per poter rendere più visibile il problema e poterlo analizzare meglio. Partendo dal presupposto che sono un sostenitore dell'observer pattern credo sia la soluzione a molti problemi in diamonds, in particolare in tutti i casi in cui un oggetto interroga un altro oggetto sul suo stato interno (vedi metodi isXxx) si può far si che sia quest'ultimo a dire al primo quando cambia il suo stato, rendendo la cosa molto più lineare a mio avviso. Pareri a riguardo?
__________________
GNU MyServer Wants YOU!!
We live thinking we will never die. We die thinking we had never lived. Jason Becker
cisc è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2008, 23:07   #2
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794


Io sono un sostenitore del codice semplice
fek è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2008, 23:18   #3
cisc
Senior Member
 
L'Avatar di cisc
 
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
Quote:
Originariamente inviato da fek Guarda i messaggi


Io sono un sostenitore del codice semplice
beh...secondo me mo lo semplifica il codice
__________________
GNU MyServer Wants YOU!!
We live thinking we will never die. We die thinking we had never lived. Jason Becker
cisc è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2008, 00:15   #4
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Magari fai un esempio di use case dove il codice diventerebbe piu` semplice :P
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2008, 09:51   #5
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cisc Guarda i messaggi
beh...secondo me mo lo semplifica il codice
cisc, un intero Observer Pattern per togliere un metodo (isTransforming) mi sembra giusto un briciolo over engineering
fek è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2008, 10:55   #6
cisc
Senior Member
 
L'Avatar di cisc
 
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
Quote:
Originariamente inviato da Ufo13 Guarda i messaggi
Magari fai un esempio di use case dove il codice diventerebbe piu` semplice :P
Codice:
StoneTurnState               IsTransformingIteration                                    Droppable
        grid.runIteration(iteration)--------->droppable.isTransforming()---->
                                                                <-----------------------------------false
        grid.runIteration(iteration)--------->droppable.isTransforming()---->
                                                                <-----------------------------------false
        grid.runIteration(iteration)--------->droppable.isTransforming()---->
                                                                <-----------------------------------false
        grid.runIteration(iteration)--------->droppable.isTransforming()---->
                                                                <-----------------------------------false (hai rotto i coglioni, sono una Gem io!!!)
Codice:
StoneTurnState                               Stone
       morphingGemCounter++<--------------------------------------stoneObserver.notifyTransformation(Transformation.STONE_TRANSFORMATION);
scusa, è un activity...ma rende l'idea

Quote:
Originariamente inviato da fek Guarda i messaggi
cisc, un intero Observer Pattern per togliere un metodo (isTransforming) mi sembra giusto un briciolo over engineering

Beh no dai..non esageriamo adesso...a parte che non si tratta di implemetare un intero observer pattern, ma anche solo una parte, cmq non si toglierebbe solo isTransforming, anche isFalling e in generale tutta la struttura di iterazione delle droppable in Grid (o una buona parte)
anche se mi rendo conto che forse è un po prematuro come refactoring
__________________
GNU MyServer Wants YOU!!
We live thinking we will never die. We die thinking we had never lived. Jason Becker

Ultima modifica di cisc : 07-03-2008 alle 11:02.
cisc è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2008, 11:56   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Se posso dire due parole: sarebbe bellissimo usare il dp Channel. Oltre che a risolvere la faccenda sopra ne risolverebbe tante altre, ad esempio sarebbe spettacolare per le catene di crash e per il calcolo dei punteggi. Inoltre abbinato al pattern state nei droppable permetterebbe ad ogni cambio di stato di registrarsi per essere notificato solo con determinati messaggi.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2008, 17:43   #8
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
dp channel? :S
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2008, 18:30   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E' la combinazione del design pattern Observer e del design pattern Mediator, da come me l'avevano spiegato nel corso di ing del software (ci sta anche che sia un nome di comodo, era una cosa alquanto fumosa da quanto mi ricordo) in pratica è un canale di comunicazione fra consumatori e produttori che li disaccoppia completamente.
Esiste un unico canale e i consumatori si registrano presso il canale per un determinato evento, i produttori inviano l'evento sul canale. Il canale non fa altro che fare da dispatcher degli eventi verso i consumatori registrati per quell'evento.
Ad esempio: in caso di crush di un dato colore la gemma che crusha invia un evento di tipo Crush che conterrà anche la posizione della gemma. Tutte le gemme saranno registrate per l'evento Crush e riceveranno l'evento Crush, ovviamente una gemma alla ricezione avvia un altro Crush solo se la gemma che ha scatenato l'evento è del suo stesso colore e si trova accanto a lei.
In questo modo si sposta responsabilità della logica sui droppable, poi chiaro che abbinato ad un pattern State la cosa si farebbe ancora interessante, rendendo il droppable sensibile ad un determinato tipo di eventi a seconda del suo stato e cambiandone il comportamento di conseguenza.
Certo mi rendo conto che sarebbe un lavorone inserirlo adesso, ma secondo me sarebbe bello.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2008, 18:41   #10
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Per me il vero punto e': sono piu' le volte che dobbiamo cheidere qualcosa a tutte le gemme o piu' le volte che ci interessano solo alcune??

In ogni caso a me l'idea del dp channel piace!
(e comunque su wikipedia il dp channel non c'e' ... il che vuol dire che non esiste )

L'unica cosa che ho trovato e' questo articolo http://www.ddj.com/cpp/184401345
che ovviamnete non ho letto
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2008, 19:46   #11
cisc
Senior Member
 
L'Avatar di cisc
 
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
Quote:
Originariamente inviato da Bonfo Guarda i messaggi
Per me il vero punto e': sono piu' le volte che dobbiamo cheidere qualcosa a tutte le gemme o piu' le volte che ci interessano solo alcune??

In ogni caso a me l'idea del dp channel piace!
(e comunque su wikipedia il dp channel non c'e' ... il che vuol dire che non esiste )

L'unica cosa che ho trovato e' questo articolo http://www.ddj.com/cpp/184401345
che ovviamnete non ho letto
anche a me piace...però se si decide (ergo fek ci da la sua benedizione) di andare verso questa strada...non bisogna forzarla...se no si rischia di introdurre un mostro come le action:|

P.S: per me sono più le volte che dobbiamo chiedere qualcosa solo a qualcuna...però è una valutazione "ad occhio" la mia
__________________
GNU MyServer Wants YOU!!
We live thinking we will never die. We die thinking we had never lived. Jason Becker
cisc è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2008, 00:43   #12
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cionci Guarda i messaggi
Certo mi rendo conto che sarebbe un lavorone inserirlo adesso, ma secondo me sarebbe bello.
http://repos.gcoders.net/HelloWorld....ns.example.php
fek è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2008, 00:45   #13
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cisc Guarda i messaggi
anche a me piace...però se si decide (ergo fek ci da la sua benedizione) di andare verso questa strada...non bisogna forzarla...se no si rischia di introdurre un mostro come le action:|

P.S: per me sono più le volte che dobbiamo chiedere qualcosa solo a qualcuna...però è una valutazione "ad occhio" la mia
Ora l'unica cosa che dobbiamo fare e' togliere di mezzo ogni singolo Refactor This.
Qui siamo tornati a tante parole e tanti Design Pattern sul forum, ma pochi commit, e la cosa non mi piace affatto.

Togliamo tutti i Refactor This e non abbiamo davvero bisogno di altro, perche' la code base sara' usabilissima.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2008, 07:39   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da fek Guarda i messaggi
Ok
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Nuovo storico lancio per il razzo spazia...
Elgato Embrace: una sedia ergonomica pro...
Brad Pitt torna in pista: F1 – Il Film a...
Hitachi Vantara annuncia la sua AI Facto...
Brembo passa all'alluminio riciclato al ...
HONOR pronta a sfidare gli iPad Pro con ...
OpenAI esce allo scoperto: confermati i ...
In arrivo altri due prodotti da Apple en...
Il tool per aggiornare da Windows 10 a W...
Rishi Sunak entra in Microsoft e Anthrop...
Porsche in poche ore chiude la formazion...
iPhone 17 disponibili su Amazon al prezz...
La Ferrari Elettrica non è la cau...
Ricarica da record: Zeekr supera i 1.300...
Un 'capezzolo' con feedback aptico al po...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:43.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v