Disambiguazione – Se stai cercando la teoria, vedi Design pattern.
Design Patterns - Elementi per il riuso di software ad oggetti
Titolo originaleDesign Patterns: Elements of Reusable
Object-Oriented Software,
AutoreErich Gamma, John Vlissides, Richard Helm e Ralph Johnson
1ª ed. originale1995
GenereSaggio
SottogenereInformatica
Lingua originaleinglese

Design Patterns - Elementi per il riuso di software ad oggetti è un saggio del 1995. Nel libro gli autori riprendono un concetto dell'architetto Christopher Alexander, il design pattern, adattandolo all'informatica.

Anche se il concetto di pattern come soluzione ricorrente a un problema è anteriore all'uscita del libro, l'enorme successo riscosso da quest'ultimo ha contribuito notevolmente alla sua popolarizzazione, che ha dato inizio ad un'intera corrente filosofica della programmazione: il movimento pattern.

La filosofia di progettazione dei software mediante pattern mutua quella di ispirazione architettonica e urbana di Alexander, riportata in bibliografia.

I pattern sono utilizzati da molti dei migliori programmatori, quali Bruce Eckel, Andrei Alexandrescu ed Herb Sutter, e la loro conoscenza viene solitamente raccomandata a chiunque voglia progettare software a livello professionale, non solamente tramite il paradigma ad oggetti. In effetti i pattern non sono basati su di uno specifico linguaggio di programmazione, anche se nel libro gli esempi di codice sono in C++ e Smalltalk, con alcuni diagrammi di classe di tipo UML.

Il concetto stesso di pattern ne permette facilmente la traduzione in qualunque linguaggio: nel primo capitolo §1.1 della versione inglese, si dice:

«Se avessimo usato un linguaggio procedurale, avremmo incluso anche i design pattern "Ereditarietà", "Incapsulamento", "Polimorfismo" [...] Alcuni dei pattern spiegati sono implementati nativamente da alcuni linguaggi ad oggetti: ad esempio il MultiMethod del CLOS rende poco necessario il "Visitor"»

E in effetti, il meccanismo della interrupt chain usato in ambiente Intel non è che l'implementazione in assembly di un Observer pattern: gli INT costituiscono le varie notify(), mentre le funzioni registrate nella interrupt chain sono gli observer. Volendo, poi, il meccanismo che nelle versioni a 32 bit di Windows assorbe gli INT prima della chain, è una versione, sempre in assembly, del Decorator (v. Windows 95 - dentro il sistema per maggiori dettagli). Tuttavia, l'uso in un linguaggio object oriented ne facilita senz'altro l'implementazione e talvolta alcuni tipi vengono supportati nativamente.

Design pattern

modifica

Un design pattern descrive una soluzione generale a un problema di progettazione ricorrente, gli attribuisce un nome, astrae e identifica gli aspetti principali della struttura utilizzata per la soluzione del problema, identifica le classi e le istanze partecipanti e la distribuzione delle responsabilità, descrive quando e come può essere applicato. In breve definisce un problema, i contesti tipici in cui si trova e la soluzione ottimale allo stato dell'arte.

Nel libro gli autori, detti Gang of Four, cioè "banda dei quattro", identificarono 23 tipi di Design Pattern, suddivisi in 3 categorie: strutturali, creazionali e comportamentali. Inoltre, per la descrizione dei pattern, spesso si rende necessario il ricorso a pattern più semplici, dando così origine al cosiddetto linguaggio di pattern.

Edizioni

modifica

Bibliografia

modifica

Voci correlate

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

Algoritmo di pattern matching su stringhe

In Informatica gli algoritmi di pattern matching su stringhe, a volte chiamati algoritmi di confronto fra stringhe o algoritmi di ricerca di stringhe

EDSAC

di addizione usava il bit pattern della lettera A), un bit di riserva non usato, dieci bit per un indirizzo di memoria e un bit per controllare se l'istruzione

Conversione di tipo

destinazione non può contenere il valore convertito, il risultato è indefinito. bit pattern Il dato non viene affatto interpretato, ma viene semplicemente copiata

Tracker

inseriti in esadecimale. Una musica completa è formata da diversi piccoli "pattern" multi-canale collegati assieme tramite una lista superiore. Il formato

Data Matrix

quali rappresenta un bit. In base alla codifica usata, una cella di colore chiaro può rappresentare il bit 0 e una di colore scuro il bit 1 (o viceversa).

Linguaggio macchina

macchina. I codici operativi e i dati nel linguaggio macchina sono pattern (stringhe) di bit. L'assembly utilizza al loro posto istruzioni mnemoniche, che

Zero instruction set computer

neurone riceveva in ingresso un vettore contenente fino a 64 bit e lo confrontava con un pattern in memoria, se il neurone trovava corrispondenza emetteva

Code 128

che permette di rappresentare tutti e 128 caratteri del codice ASCII (a 7 bit). Le specifiche di riferimento sono espresse dal ISO/IEC 15417:2007. Prevede