.NET

.NET Design Patterns

Singleton, Factory, Builder, Strategy, Decorator, Repository, Unit of Work, SOLID

24 domande da colloquio·
Senior
1

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.

2

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.

3

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.

4

Che cos'è il principio di Single Responsibility (SRP) in SOLID e come applicarlo in .NET?

5

Che cos'è il principio Open/Closed (OCP) in SOLID e come implementarlo con le interfacce in .NET?

+21 domande da colloquio

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