# Go Design Patterns (Go) > Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID - 24 domande da colloquio - Senior - [Domande da colloquio: Go](https://sharpskill.dev/it/technologies/go/domande-colloquio.md) ## 1. Qual è il principale vantaggio del pattern Functional Options in Go? **Risposta** Il pattern Functional Options consente di creare API configurabili con parametri opzionali senza sovraccaricare i costruttori. Evita più costruttori con firme diverse e offre un'API estensibile e leggibile. Questo pattern è idiomatico in Go perché sfrutta le funzioni di prima classe ed evita valori predefiniti ambigui. ## 2. Quale approccio è consigliato per implementare il pattern Singleton in Go? **Risposta** In Go, il pattern Singleton è implementato idealmente con sync.Once, che garantisce un'inizializzazione thread-safe e lazy initialization. Questo approccio evita i mutex manuali e il double-checked locking, che sono soggetti a errori. sync.Once assicura che una funzione venga eseguita una sola volta anche in presenza di più goroutine concorrenti. ## 3. Quale principio SOLID incoraggia l'uso delle interface in Go? **Risposta** Il principio Dependency Inversion afferma che i moduli di alto livello non dovrebbero dipendere dai moduli di basso livello, ma da astrazioni (interface). In Go, questo si traduce nell'accettare interface e restituire tipi concreti. Questo principio facilita il testing (mocking), il disaccoppiamento e la manutenibilità del codice. ## Altre 21 domande disponibili - Come implementare il pattern Factory in Go in modo idiomatico? - Qual è il ruolo principale del pattern Adapter? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio Go - [Fondamenti di Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-basics.md): 25 domande, Junior - [Strutture dati in Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-data-structures.md): 20 domande, Junior - [Interfacce in Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-interfaces.md): 18 domande, Junior - [Gestione degli errori](https://sharpskill.dev/it/technologies/go/domande-colloquio/error-handling.md): 20 domande, Junior - [Goroutine di base](https://sharpskill.dev/it/technologies/go/domande-colloquio/goroutines-basics.md): 20 domande, Junior - [Channels](https://sharpskill.dev/it/technologies/go/domande-colloquio/channels.md): 22 domande, Junior - [Go Modules](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-modules.md): 18 domande, Mid-Level - [Server HTTP](https://sharpskill.dev/it/technologies/go/domande-colloquio/http-server.md): 24 domande, Mid-Level - [Client HTTP](https://sharpskill.dev/it/technologies/go/domande-colloquio/http-client.md): 18 domande, Mid-Level - [Codifica JSON](https://sharpskill.dev/it/technologies/go/domande-colloquio/json-encoding.md): 20 domande, Mid-Level - [Database/SQL](https://sharpskill.dev/it/technologies/go/domande-colloquio/database-sql.md): 22 domande, Mid-Level - [Pacchetto context](https://sharpskill.dev/it/technologies/go/domande-colloquio/context-package.md): 20 domande, Mid-Level - [Testing](https://sharpskill.dev/it/technologies/go/domande-colloquio/testing.md): 22 domande, Mid-Level - [Pattern di concorrenza](https://sharpskill.dev/it/technologies/go/domande-colloquio/concurrency-patterns.md): 24 domande, Mid-Level - [Primitive di sincronizzazione](https://sharpskill.dev/it/technologies/go/domande-colloquio/sync-primitives.md): 22 domande, Mid-Level - [Framework web Go](https://sharpskill.dev/it/technologies/go/domande-colloquio/go-web-frameworks.md): 20 domande, Mid-Level - [Progettazione di API REST](https://sharpskill.dev/it/technologies/go/domande-colloquio/rest-api-design.md): 20 domande, Mid-Level - [gRPC](https://sharpskill.dev/it/technologies/go/domande-colloquio/grpc.md): 22 domande, Mid-Level - [Reflection](https://sharpskill.dev/it/technologies/go/domande-colloquio/reflection.md): 20 domande, Senior - [Gestione della memoria](https://sharpskill.dev/it/technologies/go/domande-colloquio/memory-management.md): 24 domande, Senior - [Ottimizzazione delle prestazioni](https://sharpskill.dev/it/technologies/go/domande-colloquio/performance-optimization.md): 22 domande, Senior - [Generics](https://sharpskill.dev/it/technologies/go/domande-colloquio/generics.md): 20 domande, Senior - [Microservices](https://sharpskill.dev/it/technologies/go/domande-colloquio/microservices.md): 24 domande, Senior - [Sicurezza e autenticazione](https://sharpskill.dev/it/technologies/go/domande-colloquio/security-authentication.md): 24 domande, Senior - [Docker & Containerization](https://sharpskill.dev/it/technologies/go/domande-colloquio/docker-containerization.md): 20 domande, Senior - [Kubernetes Basics](https://sharpskill.dev/it/technologies/go/domande-colloquio/kubernetes-basics.md): 22 domande, Senior - [Go Avanzato](https://sharpskill.dev/it/technologies/go/domande-colloquio/advanced-go.md): 20 domande, Senior - [Sviluppo CLI](https://sharpskill.dev/it/technologies/go/domande-colloquio/cli-development.md): 20 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/go/domande-colloquio/design-patterns