martedì 5 gennaio 2010

Design pattern e architettura



Dopo aver visto nel precedente post, come il libro A Pattern Language dell'architetto Christopher Alexander abbia influenzato un designer di famosi videgame, vediamo che altre influenze ha generato.
Non parliamo di architetti, che risultano (chissà poi perché) la categoria meno influenzata dall'opera di Alexander nonostante A Pattern Language sia a tutti gli effetti un libro di architettura.

Nel 1995 viene pubblicato Design patterns - elementi per il riuso di software ad oggetti, autori Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides.

La banda dei quattro, soprannome con il quale sono diventati famosi gli autori, riprende il concetto dei pattern di Alexander per applicarlo alla programmazione informatica. Infatti mutando la filosofia di progettazione architettonica e urbana di Alexander, derivano una nuovo paradigma di programmazione: il successo è immediato e nasce la programmazione per pattern.

I pattern si prestano a molteplici linguaggi di programmazione (es. C++, ecc..) e vengono immediatamente utilizzati da molti programmatori. Un design pattern rappresenta una soluzione generale ad un problema ricorrente, possiede un nome, identifica gli aspetti principali della struttura utilizzata per risolvere il problema, descrive come e quando può essere applicato.

Nel libro, la banda dei quattro identifica 23 design pattern, suddivisi in tre classi. Altri design pattern sono stati successivamente creati, insieme anche ad anti-pattern ovvero trappole logiche nelle quali  il programmatore può cadere. Essi ad esempio sono "carica e spara", "fede cieca", "reinventare la ruota", ecc.. .

L'introduzione del sistema dei pattern ha reso possibile l'affermazione di un linguaggio di programmazione "orientato agli oggetti" (OOP) su altri paradigmi di programmazione. In sostanza negli anni '90 si è andata affermando la programmazione per oggetti, rendendo poi di fatto possibile l'introduzione di interfacce grafiche (GUI) anche nei sistemi operativi, rendendoci in grado di utilizzare i computer senza essere a conoscenza del codice sorgente.

per approfondire:
Design pattern
Introduzione ai design pattern (sito Microsoft)
Design patterns nella programmazione OO
Linguaggio di programmazione

2 commenti:

  1. Utilissimo post. Sapevo che Alexander è stato fondamentale nel campo della programmazione ad oggetti ma non sapevo perchè. Grazie al tuo post e ai link ne ho capito qualcosa di più. Non molto, in verità, ma questa è colpa mia, non tua.
    Saluti
    Pietro

    RispondiElimina
  2. Grazie, forse la cosa su cui sono stato poco chiaro è il rapporto tra design patterns e la programmazione agli oggetti.
    Il design patterns è un modo di procedere che si presta ad essere utilizzato nella programmazione ad oggetti. Secondo alcuni è una delle caratteristiche della OOP che ne ha decretato il successo.

    RispondiElimina