02.06.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!