# Modelli di progettazione in Java ![Java CI](https://github.com/iluwatar/java-design-patterns/workflows/Java%20CI/badge.svg) [![License MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/iluwatar/java-design-patterns/master/LICENSE.md) [![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=iluwatar_java-design-patterns&metric=ncloc)](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns) [![Coverage](https://sonarcloud.io/api/project_badges/measure?project=iluwatar_java-design-patterns&metric=coverage)](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns) [![Join the chat at https://gitter.im/iluwatar/java-design-patterns](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![All Contributors](https://img.shields.io/badge/all_contributors-233-orange.svg?style=flat-square)](#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 design patterns sono le migliori pratiche di programmazione che uno sviluppatore puó usare per risolvere problemi durante il design di un'applicazione o di un sistema. I design patterns possono velocizzare lo sviluppo fornendo paradigmi di sviluppo testati e approvati. Riutilizzare i design patterns aiuta a prevenire problematiche che possono causare maggiori problemi, inoltre migliorano la leggibilità del codice per gli sviluppatori e ingegneri che hanno familiarità con questi patterns. # Come iniziare Il sito mostra i design patterns sviluppati utilizzando il linguaggio Java. Le soluzioni sono state sviluppate da programmatori e ingegneri esperti provenienti dalla community open-source. Questi patterns possono essere compresi attraverso descrizioni dettagliate o guardando il codice sorgente. Gli esempi di codice sono ben commentati e possono essere visti come dei tutorial di programmazione su come implementare uno specifico pattern. Per fare ciò utiliziamo le migliori tecnologie open-source di Java. Prima di cimentarti nel materiale proposto, dovresti prima familiarizzare con i vari [Principi di Software Design](https://java-design-patterns.com/principles/). Tutti i patterns dovrebbero essere i più semplici possibili. Ti consigliamo di cominiciare con i principi KISS, YAGNI e Do The Simplest Thing That Could Possibly Work. Complessità e patterns dovrebbero essere introdotti solamente quando sono necessari per motivi pratici. Quando hai familiarizzato con questi concetti puoi cominciare a immergerti nei [design patterns disponibili](https://java-design-patterns.com/patterns/) utilizzando uno dei seguenti approcci: - Cercando uno specifico pattern tramite il nome. Non riesci a trovarlo? Allora comunicacelo [qui](https://github.com/iluwatar/java-design-patterns/issues). - Usando tags come `Performance`, `Gang of four` o `Data access`. - Usando categorie appartenenti ai patterns come `Creational`, `Behavioral`, etc. Speriamo che 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 necessarie nella nostra pagina [wiki](https://github.com/iluwatar/java-design-patterns/wiki). Ti aiuteremo a rispondere a ogni tua domanda nella [chatroom Gitter](https://gitter.im/iluwatar/java-design-patterns). # Licenza Questo progetto è licanziato nei termini della licenza MIT.