
.NET Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Repository, Unit of Work, SOLID
1Qual è il problema principale del pattern Singleton nel .NET moderno con Dependency Injection?
Qual è il problema principale del pattern Singleton nel .NET moderno con Dependency Injection?
Risposta
Il pattern Singleton classico (istanza statica) entra in conflitto con la dependency injection perché crea un accoppiamento forte e rende difficili i test. Nel .NET moderno è preferibile usare il service lifetime 'Singleton' tramite DI (services.AddSingleton), che offre la stessa garanzia di istanza unica permettendo al contempo injection, mocking e testabilità. Il Singleton statico aggira il container DI e crea dipendenze nascoste.
2Nel pattern Factory Method, qual è la differenza tra Factory Method e Abstract Factory in .NET?
Nel pattern Factory Method, qual è la differenza tra Factory Method e Abstract Factory in .NET?
Risposta
Factory Method definisce un metodo virtuale per creare un singolo tipo di oggetto (es. CreateLogger), consentendo alle sottoclassi di decidere quale classe concreta istanziare. Abstract Factory definisce un'interface per creare famiglie di oggetti correlati (es. IUIFactory con CreateButton, CreateTextBox), permettendo di creare insieme più prodotti coerenti. Factory Method si concentra su un singolo prodotto con il polimorfismo, mentre Abstract Factory gestisce più prodotti della stessa famiglia.
3Qual è il principale vantaggio del pattern Builder in .NET per creare oggetti complessi con molti parametri opzionali?
Qual è il principale vantaggio del pattern Builder in .NET per creare oggetti complessi con molti parametri opzionali?
Risposta
Il pattern Builder evita i costruttori telescopici (più overload con diverse combinazioni di parametri) fornendo un'interface fluida per costruire l'oggetto passo dopo passo. Consente di creare oggetti complessi con parametri opzionali in modo leggibile e manutenibile, a differenza dei costruttori con oltre 10 parametri. Nel C# moderno, le init property e i record possono sostituire Builder per i casi semplici, ma Builder resta utile per validazioni complesse o costruzioni a più fasi.
Che cos'è il principio di Single Responsibility (SRP) in SOLID e come applicarlo in .NET?
Che cos'è il principio Open/Closed (OCP) in SOLID e come implementarlo con le interfacce in .NET?
+21 domande da colloquio
Altri argomenti di colloquio .NET
Fondamenti di C#
LINQ & Delegates
Fondamenti del linguaggio C#
Fondamenti di ASP.NET Core
Ciclo di vita delle richieste in ASP.NET Core
Configuration & Settings
Ciclo di vita dell'applicazione
Dependency Injection
Entity Framework Core
Minimal APIs
Sviluppo di Web API
Async in ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Serializzazione JSON
Entity Framework Core avanzato
Funzionalità avanzate di C#
Clean Architecture
Logging, Monitoring & Observability
Test unitari & xUnit
Test di integrazione
Docker & Containerization
Gestione dei pacchetti NuGet
Memory Management & GC
Programmazione reattiva
Async/await & Pattern
Ottimizzazione delle prestazioni
Sicurezza e Best Practices
SignalR e tempo reale
Architettura a Microservizi
Padroneggia .NET per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis