
.NET Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Repository, Unit of Work, SOLID
1Jaki jest główny problem wzorca Singleton w nowoczesnym .NET z Dependency Injection?
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.
2We wzorcu Factory Method, jaka jest różnica między Factory Method a Abstract Factory w .NET?
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.
3Jaka jest główna zaleta wzorca Builder w .NET przy tworzeniu złożonych obiektów z wieloma opcjonalnymi parametrami?
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.
Czym jest zasada Single Responsibility (SRP) w SOLID i jak ją stosować w .NET?
Czym jest zasada Open/Closed (OCP) w SOLID i jak zaimplementować ją za pomocą interfejsów w .NET?
+21 pytań z rozmów
Inne tematy rekrutacyjne .NET
Podstawy C#
LINQ & Delegates
Podstawy języka C#
Podstawy ASP.NET Core
Cykl życia żądania w ASP.NET Core
Configuration & Settings
Cykl życia aplikacji
Dependency Injection
Entity Framework Core
Minimal APIs
Tworzenie Web API
Async w ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Serializacja JSON
Entity Framework Core zaawansowany
Zaawansowane funkcje C#
Clean Architecture
Logging, Monitoring & Observability
Testy jednostkowe & xUnit
Testy integracyjne
Docker & Containerization
Zarządzanie pakietami NuGet
Memory Management & GC
Programowanie reaktywne
Async/await i wzorce
Optymalizacja wydajności
Bezpieczeństwo i Best Practices
SignalR i czas rzeczywisty
Architektura Mikroserwisó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