.NET

.NET Design Patterns

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

24 pytań z rozmów·
Senior
1

Jaki jest główny problem wzorca Singleton w nowoczesnym .NET z Dependency Injection?

Odpowiedź

Klasyczny wzorzec Singleton (instancja statyczna) koliduje z dependency injection, ponieważ tworzy silne sprzężenie i utrudnia testowanie. W nowoczesnym .NET lepiej używać lifetime usługi 'Singleton' przez DI (services.AddSingleton), który zapewnia tę samą gwarancję pojedynczej instancji, jednocześnie umożliwiając injection, mockowanie i testowalność. Statyczny Singleton omija kontener DI i tworzy ukryte zależności.

2

We wzorcu Factory Method, jaka jest różnica między Factory Method a Abstract Factory w .NET?

Odpowiedź

Factory Method definiuje metodę wirtualną do tworzenia pojedynczego typu obiektu (np. CreateLogger), pozwalając podklasom decydować, którą konkretną klasę zinstancjonować. Abstract Factory definiuje interface do tworzenia rodzin powiązanych obiektów (np. IUIFactory z CreateButton, CreateTextBox), umożliwiając tworzenie wielu spójnych produktów razem. Factory Method skupia się na pojedynczym produkcie z polimorfizmem, a Abstract Factory zarządza wieloma produktami z tej samej rodziny.

3

Jaka jest główna zaleta wzorca Builder w .NET przy tworzeniu złożonych obiektów z wieloma opcjonalnymi parametrami?

Odpowiedź

Wzorzec Builder unika konstruktorów teleskopowych (wielu przeciążeń z różnymi kombinacjami parametrów), zapewniając płynny interface do budowania obiektu krok po kroku. Pozwala tworzyć złożone obiekty z opcjonalnymi parametrami w czytelny i łatwy w utrzymaniu sposób, w przeciwieństwie do konstruktorów z ponad 10 parametrami. We współczesnym C# właściwości init i rekordy mogą zastąpić Builder w prostych przypadkach, ale Builder pozostaje przydatny do złożonej walidacji lub konstrukcji wieloetapowej.

4

Czym jest zasada Single Responsibility (SRP) w SOLID i jak ją stosować w .NET?

5

Czym jest zasada Open/Closed (OCP) w SOLID i jak zaimplementować ją za pomocą interfejsów w .NET?

+21 pytań z rozmów

Opanuj .NET na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo