Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
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


Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
Le 10 migliori offerte Amazon di Pasqua:...
Nuove fotografie dagli astronauti di Art...
La toilette della capsula Orion Integrit...
GeForce NOW: ecco tutte le novità in arr...
Il Realme 16 5G debutta sul mercato glob...
HONOR svela tre nuovi tablet: il più int...
Tineco Floor One S9 Master: aspira e pul...
Vivo X300 Ultra, il lancio globale è ini...
Offerte robot aspirapolvere Amazon: ECOV...
L'AI genera codice in 8 minuti e i senio...
Ring Intercom Audio a 44,99€ su Amazon: ...
Apple iPhone 16 crolla a 689€: ecco perc...
Google Pixel 9 a 449,90€ con caricatore ...
Ecco la top 7 delle offerte Amazon, aggi...
Ex ingegnere ammette il sabotaggio: migl...
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: 10:57.


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