Design Patterns: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FixBot (discussione | contributi)
m Bot: sostituisco il template {{Scheda libro}} con {{Libro}} (Vedi qui)
Botcrux (discussione | contributi)
m Bot: fix wl, replaced: Design Patterns patterns → Design pattern
 
(48 versioni intermedie di 36 utenti non mostrate)
Riga 1:
{{nota disambigua|la teoria|Design pattern}}
{{Libro
|titolo = Design Patterns - Elementi per il riuso di software ad oggetti
|titoloorig = Design Patterns: Elements of Reusable<br />Object-Oriented Software,
|autore =
|autore = [[Erich Gamma|Gamma, E.]], [[Richard Helm|Helm, R.]], [[Ralph Johnson|Johnson, R.]] e [[John Vlissides|Vlissides, J.]]
|annoorig = [[1995]]
|genere = [[Saggio]]
|sottogenere = [[Informatica]]
|lingua = en
}} '''Design Patterns - Elementi per il riuso di software ad oggetti''' è un saggio del [[1995]]. Nel libro gli autori riprendono un concetto dell'[[architettura|architetto]] [[Christopher Alexander]], il ''[[design pattern]]'', adattandolo all'[[informatica]].
}}
}} '''''Design Patterns - Elementi per il riuso di software ad oggetti''''' è un saggio del [[1995]]. Nel libro gli autori riprendono un concetto dell'[[architettura|architetto]] [[Christopher Alexander]], il ''[[A Pattern Language|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 (informatica)|programmazione]]: il [[movimento pattern]].
 
La ''filosofia'' di progettazione dei software mediante pattern mutua quella di ispirazione architettonica e urbana di Alexander, riportata in [[#Bibliografia e riferimenti|bibliografia]].
Riga 15 ⟶ 18:
 
Il concetto stesso di pattern ne permette facilmente la traduzione in qualunque linguaggio: nel primo capitolo §1.1 della versione inglese, si dice:
{{quoteCitazione|Se avessimo usato un linguaggio procedurale, avremmo incluso anche i design pattern "Ereditarietà", "IncapsulazioneIncapsulamento", "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|Observer]]: 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 [[Microsoft Windows|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'implentazioneuso in un linguaggio ''object oriented'' ne facilita senz'altro l'implementazione, e anzi in alcuni casi,talvolta alcuni tipi ne vengono supportati nativamente.
 
==Design pattern==
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 fourFour (scrittori)|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]].
 
==Bibliografia e riferimenti==
*Salingaros, N., "[http://www.math.utsa.edu/sphere/salingar/Chris.text.html Some notes on Christopher Alexander]", UTSA
*Schulman, A. "[[Windows 95 - dentro il sistema]]"
 
== Edizioni ==
*{{Cita libro
|autore= [[Erich Gamma|Gamma, E.]], [[Richard Helm|Helm, R.]], [[Ralph Johnson (informatico)|Johnson, R.]] e [[John Vlissides|Vlissides, J.]]
|altri=
|titolo= Design Patterns - Elementi per il riuso di software ad oggetti
|anno= [[2002]]
|editore= Pearson Education Italia
|p= 412
|edizione=
|isbn= 88-7192-150-X
|pagine= pp. 412
|id= ISBN 887192150X
}}
 
==Bibliografia e riferimenti==
*Salingaros, N., [http://zeta.math.utsa.edu/~yxk833/Chris.text.html Some notes on Christopher Alexander] {{Webarchive|url=https://web.archive.org/web/20110415002236/http://zeta.math.utsa.edu/~yxk833/Chris.text.html |date=15 aprile 2011 }}", UTSA
*Schulman, A. "''[[Windows 95 - dentro il sistema]]"''
 
== Voci correlate ==
* [[Cocoa (software)]]
*[[Design pattern]]
*[[PLoP]]
*[[Nikos Salingaros]]
*[[A Pattern Language]]
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|1=http://eii.pucv.cl/pers/guidi/documentos/Guidi-GoFDesignPatternsInJava.pdf|2=I 23 Design Patterns nel linguaggio Java|formato=pdf|accesso=25 novembre 2010|dataarchivio=11 febbraio 2014|urlarchivio=https://web.archive.org/web/20140211034344/http://eii.pucv.cl/pers/guidi/documentos/Guidi-GoFDesignPatternsInJava.pdf|urlmorto=sì}}
 
{{Design pattern}}
{{portale|informatica}}
 
[[Categoria:Teorie dell'informatica]]
[[categoriaCategoria:Saggi di informatica]]
[[Categoria:Libri sull'informatica]]
[[categoria:Schede libri]]
 
[[en:Design Patterns]]