Design patternsIniziare con i modelli di progettazione


Osservazioni

Questa sezione fornisce una panoramica di quali sono i modelli di progettazione e perché uno sviluppatore potrebbe volerlo utilizzare. Gli esempi possono fornire una rappresentazione grafica del modello, uno scenario costituito da un problema dato un contesto in cui è possibile utilizzare un modello e menzionare possibili compromessi.

Dovrebbe anche menzionare eventuali soggetti di grandi dimensioni all'interno di schemi di progettazione e collegarsi agli argomenti correlati. Poiché la Documentazione per i modelli di progettazione è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.

introduzione

Secondo Wikipedia :

[A] modello di progettazione software è una soluzione generale riutilizzabile per un problema che si verifica comunemente in un determinato contesto nella progettazione del software. Non è un progetto finito che può essere trasformato direttamente in codice sorgente o macchina. È una descrizione o un modello per come risolvere un problema che può essere utilizzato in molte situazioni diverse. I modelli di progettazione sono le migliori pratiche formalizzate che il programmatore può utilizzare per risolvere problemi comuni durante la progettazione di un'applicazione o di un sistema.

(Estratto: 13-10-2016)

Esistono molti modelli di progettazione software riconosciuti e ne vengono proposti di nuovi su base regolare. Altri argomenti coprono molti dei modelli più comuni e l'articolo di Wikipedia fornisce un elenco più esteso.

Allo stesso modo, ci sono diversi modi per classificare i modelli di progettazione, ma la classificazione originale è:

L'idea dei modelli di progettazione è stata estesa a modelli di progettazione specifici del dominio per domini quali la progettazione dell'interfaccia utente, la visualizzazione dei dati, la progettazione sicura, il web design e la progettazione di modelli di business.

Infine, esiste un concetto correlato chiamato pattern dell'architettura software che è descritto come l'analogo per i pattern di progettazione applicati alle architetture software.