Marco Papacchini

Design Pattern

«All'interno di questo processo, ogni singola attività di costruzione è un processo di differenziazione dello spazio. Non è un processo durante il quale un tutto è creato mediante l'assemblamento di parti precostituite: è piuttosto uno schiudersi, come l'evoluzione di un embrione, durante il quale il tutto precede le parti, che prendono vita da esso per mezzo di divisioni»
(Christopher Alexander)

Con il termine pattern comunemente si intende una soluzione ricorrente ad un problema in un contesto. Uno dei problemi principali della progettazione del software sono i cambiamenti. Questi fanno parte della vera natura dello sviluppo del software e la flessibilità costituisce la giusta risposta quando si devono affrontare i cambiamenti. La ricerca di un adeguato grado di flessibilità è quindi una delle forze fondamentali da considerare in fase di progettazione.

I linguaggi di programmazione offrono vari strumenti di astrazione al fine di ottenere flessibilità. Un'astrazione è una moneta con due facce: gli aspetti comuni e le variazioni. Si ottiene flessibilità realizzando una struttura software attorno alle parti stabili (gli aspetti comuni), ciascuna delle quali consente un certo tipo di variabilità. Dei principi regolano l'utilizzo corretto di tali strumenti.

Tuttavia talvolta è richiesta una particolare tipologia di variabilità che il linguaggio non è in grado di fornire direttamente per mezzo di nessuna astrazione che esso mette a disposizione. E' quindi necessario limitarsi ad utilizzare gli strumenti che si hanno a disposizione e i design pattern descrivono quando e come è possibile farlo. In tal caso i design pattern descrivono le modalità attraverso le quali è possibile aggirare le limitazioni del linguaggio in uso. E' interessante osservare come alcuni design pattern non sono più necessari quando si passa, ad esempio, da un linguaggio Orientato agli Oggeti ad uno Orientato agli Aspetti.

Ma i pattern sono molto più che semplicemente una soluzione ad un problema in un contesto! La profonda comprensione del concetto di pattern ci conduce nel contesto dell'unità, della bellezza, della simmetria.





























© Copyright Marco Papacchini