# Modelli di progettazione in Java

[](https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/LICENSE.md)
[](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns)
[](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns)
[](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](#contributors-)
Leggi in lingue diverse: [**it**](localization/it/README.md), [**zh**](localization/zh/README.md), [**ko**](localization/ko/README.md), [**fr**](localization/fr/README.md), [**tr**](localization/tr/README.md), [**ar**](localization/ar/README.md), [**es**](localization/es/README.md), [**pt**](localization/pt/README.md), [**id**](localization/id/README.md), [**ru**](localization/ru/README.md), [**de**](localization/de/README.md), [**ja**](localization/ja/README.md), [**vi**](localization/vi/README.md), [**bn**](localization/bn/README.md), [**np**](localization/np/README.md)
# Introduzione
I modelli di progettazione sono i migliori metodi un programmatore puó usare per
risolvere problemi comuni nel strutturare un' applicazione o sistema.
I modelli di progettazione possono velocizzare lo sviluppo fornendo paradigmi di
sviluppo testati e approvati.
Riutilizzare i modelli di progettazione aiuta a prevenire problemi che possono
diventare sempre più grandi a, inoltre, migliora la leggibilità del codice per i
programmatori e ingegneri che anno famigliarità con questi modelli.
# Come iniziare
Questo sito espone i Modelli di Progettazione in Java. Le soluzioni sono state
sviluppate da programmatori e ingegneri esperti della comunità open-source. Questi
modelli possono essere consultati attraverso le loro descrizioni dettagliate o guardando
il loro codice sorgente. Gli esempti di codice sono ben commentati e possono essere
visti come dei tutorial di programmazione riguardanti l' implementazione di modelli
specifici. Per fare ciò utiliziamo le migliori e più famose tecnologie Java.
Prima di cimentarti nel materiale proposto, dovresti prima familiarizzare con i vari
[Principi di modellazione software](https://java-design-patterns.com/principles/).
Tutti i modelli dovrebbero essere il più semplici possibili. Ti consigliamo di cominicare
con i principi KISS, YAGNI e Do The Simplest Thing That Could Possibly Work. Complessità
e modelli dovrebbero essere introdotti solamente quando sono necessari per motivi pratici.
Quando hai familiarizzato con questi concetti puoi cominciare a immergerti nei
[modelli di progettazione disponibili](https://java-design-patterns.com/patterns/) usando
uno dei seguenti approcci:
- Ricercando un modello specifico per nome. Non riesci a trovarlo? Allora comunicacelo [qui](https://github.com/iluwatar/java-design-patterns/issues).
- Usando etichette come `Performence`, `Gang of four` o `Data access`.
- Usando categorie di modelli come `Creational`, `Behavioral` eccetera.
Speriamo le soluzioni object-oriented mostrate ti siano utili per i tuoi progetti e che tu
ti diverta a impararle come abbiamo fatto noi nell' implementarle.
# Come contribuire
Se desideri contribuire al progetto puoi trovare le informazioni necessari nella nostra pagina
[wiki](https://github.com/iluwatar/java-design-patterns/wiki). Ti aiuteremo a responderemo a
ogni tua domanda nella [chatroom Gitter](https://gitter.im/iluwatar/java-design-patterns).
# Licenza
Questo progetto sotto licenza MIT.