PROBLEMA Casini con il design pattern chain of responsability

FliMoMi

Utente Attivo
238
35
Salve ragazzi, il prossimo 8 febbraio dovrei sostenere l'esame di Ingegneria del Software, dove porto una web application molto semplice. Durante la fase di object design si deve specificare quali design pattern sono stati utilizzati. In fase implementativa, per gestire le varie ricerche all'interno del mio sistema ho usato chain of responsability.
Chain of Responsability consente di separare il mittente di una richiesta dal destinatario, in
modo di consentire a più di un oggetto di gestire la richiesta. Gli oggetti
destinatari vengono messi in catena, e la richiesta trasmessa dentro
questa catena fino a trovare un oggetto che la gestisca.
Ora io implementativamente ho una servlet a cui arrivano dei paramatri che vengono passati di filtro in filto. Se il filtro1 nota che non può gestire la ricerca coi parametri ricevuti, la invia ad un filtro successivo e così via. In totale sono tre filtri. Ora il mio dubbio è capire se ha senso usare questo tipo di design pattern per gestirmi la ricerca. In rete esempi che trattino la ricerca non ne ho trovati e sono ancora di più caduto nello sconforto più totale... Qualche anima pia che mi possa aiutare?
 

bigendian

Utente Attivo
751
432
OS
Linux
Per un tale esercizio dovresti individuare un caso reale che necessita del pattern che hai scelto.
Ad esempio, se l'oggetto ricevente implementa un thread consumatore, effettuare il dispatch a un altro oggetto puo avere senso.

richiesta -----> oggetto 1 impegnato nel thread, -------> passa a oggetto 2 (atro thread, altra cpu magari piu libera).
 
  • Mi piace
Reazioni: FliMoMi

FliMoMi

Utente Attivo
238
35
Per un tale esercizio dovresti individuare un caso reale che necessita del pattern che hai scelto.
Ad esempio, se l'oggetto ricevente implementa un thread consumatore, effettuare il dispatch a un altro oggetto puo avere senso.

richiesta -----> oggetto 1 impegnato nel thread, -------> passa a oggetto 2 (atro thread, altra cpu magari piu libera).
Quindi con una situazione di ricerca non funzionerebbe? All'inizio pensavo di alleggerire il carico sulla servlet che riceve le richieste di ricerca più pesanti, e le invia ai filtri che gestiscono la logica, ma credo che non alleggerirei proprio nulla... Alla fine era per evitare uno switch case all'interno della servlet stessa
 

Andretti60

Utente Èlite
6,440
5,091
… Alla fine era per evitare uno switch case all'interno della servlet stessa
Non farlo. Nella programmazione moderna istruzioni come Switch e If durante runtime vanno evitati come la peste, vanno solo bene durante configurazione (questo per tutti i linguaggi)
Non ho i dettagli del tuo problema, ma mi pare che il CoR si adatti bene in questo caso. Il servlet va bene per ricevere l’input, ma poi tutta la elaborazione deve essere eseguita in un ambiente separato.
 
  • Mi piace
Reazioni: FliMoMi

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!