analisi e gestione della sicurezza di una complessa applicazione ...
analisi e gestione della sicurezza di una complessa applicazione ...
analisi e gestione della sicurezza di una complessa applicazione ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CAPITOLO III - Progettare un’<strong>applicazione</strong>: i design pattern<br />
L’uso del pattern Template Method rappresenta anche <strong>una</strong> soluzione efficace in termini <strong>di</strong><br />
esten<strong>di</strong>bilità. È il caso, per esempio, <strong>di</strong> System.Collections.ObjectModel.Collection.<br />
Questa classe è la rappresentazione <strong>di</strong> un insieme <strong>di</strong> elementi <strong>di</strong> tipo T, che funge da wrapper<br />
per il tipo generico System.Collections.Generic.List, ma, rispetto ad esso, fornisce<br />
meccanismi <strong>di</strong> esten<strong>di</strong>bilità sfruttando appunto il pattern in questione. Sono tanti gli esempi <strong>di</strong><br />
uso <strong>di</strong> questo template nel nostro co<strong>di</strong>ce; <strong>di</strong> seguito viene riportata <strong>una</strong> proprietà <strong>della</strong> classe<br />
Concessionario.cs, in cui viene customizzato il tipo generico System.Collections.Generic.List<br />
con System.Collections.Generic.List:<br />
Figura 20 Template Method in Talete<br />
In pratica questa proprietà restituisce <strong>una</strong> lista <strong>di</strong> organizzazioni, cioè <strong>di</strong> oggetti <strong>di</strong> tipo<br />
Organizzazione, selezionandole tramite <strong>una</strong> query Select dal database. Si può notare l’uso del<br />
parameter id nella query per evitare SQL injection (minaccia che sarà approfon<strong>di</strong>ta in seguito).<br />
50