Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Ho come l'impressione di essermi perso qualcosa. Si era parlato di due subject, ora sono tre. E ho l'impressione che possano aumentare.
    Inoltre, la modifica di uno dei due subject, richiederebbe l'aggiornamento di altri tipi di observer, che non ho ancora implementato, ma che lo dovranno essere a breve, ecco il perchè del tentativo di ricorrere al d.p. observer.
    Qui parli di più observer. Immagino che debbano interagire con i tre (o più) subject, oppure ho capito male?
    se qualcuno ne ha di migliori...
    Ce ne sono di migliori (almeno dal punto di vista della OOP), ma per discuterne occorre sapere di quanta roba di un tipo e dell'altro stiamo parlando. Perchè se parliamo di al massimo tre subject, si può violare leggermente il pattern. Se parliamo da quattro in su meglio mixare l'obvserver al pattern Visitor.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  2. #2
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177
    Quote Originariamente inviata da shodan Visualizza il messaggio
    Ho come l'impressione di essermi perso qualcosa. Si era parlato di due subject, ora sono tre. E ho l'impressione che possano aumentare.
    Direi di si, ma la colpa e' mia: il caso reale necessitava di due subject, di cui tenere traccia del tipo concreto in modo da poter accedere ai suoi metodi senza dover eseguire operazioni di cast, il caso postato e' un caso 'accademico', indipendente, che parte sempre dalla stessa necessita', cioe' piu' subject osservati di tipo diverso a cui poter accedere per richiamare i rispettivi metodi, che pero' mi e' servito ad impostare un piccolo programmino di prova della corretta implementazione del pattern Observer: son diventati tre subject per puro caso, ho implementato il tutto a distanza di tempo dall'inizio della discussione e per tenere un filo logico avrei dovuto tenere due subject, spero di aver chiarito.

    In particolare mi interessava sapere se il modo in cui individuo il tipo del subject passato col metodo setSubject e' corretto (uso del dynamic_cast) o si puo' fare altrimenti, usando ad esempio typeid, ma da quanto letto in giro mi pare sconsigliato.

    Quote Originariamente inviata da shodan Visualizza il messaggio
    Qui parli di pi� observer. Immagino che debbano interagire con i tre (o pi�) subject, oppure ho capito male?
    Qui mi perdo io: in che senso parlo di piu' observer? Se puo servire, io parto dalla necessita' di osservare un oggetto, in alcuni casi due, in modo che le loro modifiche vengano notificate e quindi comportino l'aggiornamento degli osservatori. Per contro, un subject puo' avere piu' di un observer.

    Quote Originariamente inviata da shodan Visualizza il messaggio
    Ce ne sono di migliori (almeno dal punto di vista della OOP), ma per discuterne occorre sapere di quanta roba di un tipo e dell'altro stiamo parlando. Perch� se parliamo di al massimo tre subject, si pu� violare leggermente il pattern. Se parliamo da quattro in su meglio mixare l'obvserver al pattern Visitor.
    Per migliori intendevo migliori modi di individuare il tipo del subject passato tramite il metodo setSubject senza dover ricorrere al dynamic_cast, ma non saprei cosa altro fare.
    Se poi esistono altre strade percorribili, per le mie necessita', se non stravolgono la logica e non sono complicate, conoscere roba nuova puo far solamente bene, altrimenti, essendo programmi per uso personale, non sono alla disperata ricerca di prestazioni o che altro, una volta che funzionano, va bene.

    Grazie!

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.