Come vengono normalmente inoltrate le richieste nel modello Chain of Responsibility? [chiuso]

0

Stavo solo sperimentando il modello di progettazione Chain of responsibility , implementando la mia versione.

Attualmente sto leggendo i Pattern di progettazione, ma non sono sicuro che DP dica di interrompere l'inoltro delle richieste quando viene eseguita una singola azione, o semplicemente di continuare fino alla fine della catena.

Quello che mi interessa è come questa caratteristica del modello COR sia gestita nella maggior parte dei casi. Nel mio esempio qui sotto, ho lasciato che l'inoltro continuasse fino alla fine della mia catena.

Non penso che tu abbia bisogno di alcuna fonte, ma puoi comunque trovarlo qui.

Se mi mancassero alcuni paragrafi di DP che dicevano questo, per favore forniscimi la sua posizione!

    
posta Acsor 11.10.2013 - 21:39
fonte

1 risposta

0

in questo esempio c'è una linea ben distinta che una cosa gestisce in modo permanente la richiesta, e solo se quella cosa non è in grado di gestirla, il prossimo in linea avrà anche la possibilità di esaminare la richiesta.

public override void ProcessRequest(Purchase purchase)  
{  
  if (purchase.Amount < 10000.0)  
  {  
    Console.WriteLine("{0} approved request# {1}",  
    this.GetType().Name, purchase.Number);  
  }  
  else if (successor != null)  
  {  
    successor.ProcessRequest(purchase);  
  }  
}  

link

Ho la sensazione che qui ci sia più ricchezza e dinamicità. come se potessi avere uno di questi gestori, che aveva una certa soglia in cui consentirebbe il prossimo in linea a "fare un'offerta" e quindi prendere una decisione. dovresti davvero scrivere una simile logica, e mantenerti organizzato in quanto il pattern di base non affronta proprio questo tipo di complessità.

Direi che schemi così ricchi tenderebbero a un Design guidato dalla responsabilità al posto di un cookie cutter Catena di R.

    
risposta data 11.10.2013 - 23:18
fonte

Leggi altre domande sui tag