# Go Design Patterns (Go) > Singleton, Factory, Builder, Strategy, Decorator, Adapter, functional options, SOLID - 24 pytań z rozmów - Senior - [Pytania z rozmów: Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne.md) ## 1. Jaka jest główna zaleta wzorca Functional Options w Go? **Odpowiedź** Wzorzec Functional Options pozwala tworzyć konfigurowalne API z opcjonalnymi parametrami bez przeciążania konstruktorów. Unika wielu konstruktorów o różnych sygnaturach i zapewnia rozszerzalne oraz czytelne API. Ten wzorzec jest idiomatyczny w Go, ponieważ wykorzystuje funkcje pierwszej klasy i unika niejednoznacznych wartości domyślnych. ## 2. Jakie podejście jest zalecane do implementacji wzorca Singleton w Go? **Odpowiedź** W Go wzorzec Singleton najlepiej implementuje się za pomocą sync.Once, który gwarantuje inicjalizację thread-safe oraz lazy initialization. To podejście pozwala uniknąć ręcznych mutexów i double-checked locking, które są podatne na błędy. sync.Once gwarantuje, że funkcja zostanie wykonana tylko raz, nawet przy wielu współbieżnych goroutine. ## 3. Która zasada SOLID zachęca do używania interface w Go? **Odpowiedź** Zasada Dependency Inversion stanowi, że moduły wysokiego poziomu nie powinny zależeć od modułów niskiego poziomu, lecz od abstrakcji (interface). W Go przekłada się to na przyjmowanie interface i zwracanie typów konkretnych. Ta zasada ułatwia testowanie (mocking), rozprzęganie oraz utrzymywalność kodu. ## Jeszcze 21 dostępnych pytań - Jak idiomatycznie zaimplementować wzorzec Factory w Go? - Jaka jest główna rola wzorca Adapter? Zarejestruj się za darmo: https://sharpskill.dev/pl/login ## Inne tematy rekrutacyjne Go - [Podstawy Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-basics.md): 25 pytań, Junior - [Struktury danych w Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-data-structures.md): 20 pytań, Junior - [Interfejsy w Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-interfaces.md): 18 pytań, Junior - [Obsługa błędów](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/error-handling.md): 20 pytań, Junior - [Podstawy goroutines](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/goroutines-basics.md): 20 pytań, Junior - [Channels](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/channels.md): 22 pytań, Junior - [Go Modules](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-modules.md): 18 pytań, Mid-Level - [Serwer HTTP](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/http-server.md): 24 pytań, Mid-Level - [Klient HTTP](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/http-client.md): 18 pytań, Mid-Level - [Kodowanie JSON](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/json-encoding.md): 20 pytań, Mid-Level - [Database/SQL](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/database-sql.md): 22 pytań, Mid-Level - [Pakiet context](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/context-package.md): 20 pytań, Mid-Level - [Testing](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/testing.md): 22 pytań, Mid-Level - [Wzorce współbieżności](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/concurrency-patterns.md): 24 pytań, Mid-Level - [Prymitywy synchronizacji](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/sync-primitives.md): 22 pytań, Mid-Level - [Frameworki webowe Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/go-web-frameworks.md): 20 pytań, Mid-Level - [Projektowanie API REST](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/rest-api-design.md): 20 pytań, Mid-Level - [gRPC](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/grpc.md): 22 pytań, Mid-Level - [Reflection](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/reflection.md): 20 pytań, Senior - [Zarządzanie pamięcią](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/memory-management.md): 24 pytań, Senior - [Optymalizacja wydajności](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/performance-optimization.md): 22 pytań, Senior - [Generics](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/generics.md): 20 pytań, Senior - [Microservices](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/microservices.md): 24 pytań, Senior - [Bezpieczeństwo i uwierzytelnianie](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/security-authentication.md): 24 pytań, Senior - [Docker & Containerization](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/docker-containerization.md): 20 pytań, Senior - [Kubernetes Basics](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/kubernetes-basics.md): 22 pytań, Senior - [Zaawansowany Go](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/advanced-go.md): 20 pytań, Senior - [Tworzenie CLI](https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/cli-development.md): 20 pytań, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pl/technologies/go/pytania-rekrutacyjne/design-patterns