.NET

.NET Design Patterns

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

24 questions d'entretien·
Senior
1

Quel est le principal problème du pattern Singleton en .NET moderne avec Dependency Injection ?

Réponse

Le pattern Singleton classique (instance statique) entre en conflit avec l'injection de dépendances car il crée un couplage fort et rend les tests difficiles. En .NET moderne, il est préférable d'utiliser le service lifetime 'Singleton' via DI (services.AddSingleton), qui offre les mêmes garanties d'instance unique tout en permettant l'injection, le mocking et la testabilité. Le Singleton statique contourne le conteneur DI et crée des dépendances cachées.

2

Dans le pattern Factory Method, quelle est la différence entre Factory Method et Abstract Factory en .NET ?

Réponse

Factory Method définit une méthode virtuelle pour créer un seul type d'objet (ex: CreateLogger), permettant aux sous-classes de décider quelle classe concrète instancier. Abstract Factory définit une interface pour créer des familles d'objets liés (ex: IUIFactory avec CreateButton, CreateTextBox), permettant de créer plusieurs produits cohérents ensemble. Factory Method se concentre sur un seul produit avec polymorphisme, Abstract Factory gère plusieurs produits d'une même famille.

3

Quel est l'avantage principal du pattern Builder en .NET pour créer des objets complexes avec de nombreux paramètres optionnels ?

Réponse

Le pattern Builder évite les constructeurs télescopiques (multiples overloads avec différentes combinaisons de paramètres) en fournissant une interface fluide pour construire l'objet étape par étape. Il permet de créer des objets complexes avec des paramètres optionnels de manière lisible et maintenable, contrairement à des constructeurs avec 10+ paramètres. En C# moderne, les init properties et records peuvent remplacer Builder pour les cas simples, mais Builder reste utile pour la validation complexe ou la construction multi-étapes.

4

Qu'est-ce que le principe de Single Responsibility (SRP) en SOLID et comment l'appliquer en .NET ?

5

Qu'est-ce que le principe Open/Closed (OCP) en SOLID et comment l'implémenter avec des interfaces en .NET ?

+21 questions d'entretien

Maîtrise .NET pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement