
.NET Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Repository, Unit of Work, SOLID
1Яка основна проблема патерну Singleton у сучасному .NET із Dependency Injection?
Яка основна проблема патерну Singleton у сучасному .NET із Dependency Injection?
Відповідь
Класичний патерн Singleton (статичний екземпляр) конфліктує з dependency injection, оскільки створює тісне зчеплення й ускладнює тестування. У сучасному .NET краще використовувати service lifetime 'Singleton' через DI (services.AddSingleton), що дає таку саму гарантію єдиного екземпляра, водночас уможливлюючи injection, мокінг і тестованість. Статичний Singleton обходить DI-контейнер і створює приховані залежності.
2У патерні Factory Method, яка різниця між Factory Method та Abstract Factory у .NET?
У патерні Factory Method, яка різниця між Factory Method та Abstract Factory у .NET?
Відповідь
Factory Method визначає віртуальний метод для створення одного типу об'єкта (напр., CreateLogger), дозволяючи підкласам вирішувати, який конкретний клас інстанціювати. Abstract Factory визначає interface для створення родин пов'язаних об'єктів (напр., IUIFactory із CreateButton, CreateTextBox), даючи змогу створювати кілька узгоджених продуктів разом. Factory Method зосереджується на одному продукті з поліморфізмом, а Abstract Factory керує кількома продуктами однієї родини.
3Яка основна перевага патерну Builder у .NET для створення складних об'єктів із багатьма необов'язковими параметрами?
Яка основна перевага патерну Builder у .NET для створення складних об'єктів із багатьма необов'язковими параметрами?
Відповідь
Патерн Builder уникає телескопічних конструкторів (численних перевантажень із різними комбінаціями параметрів), надаючи плавний interface для покрокової побудови об'єкта. Він дозволяє створювати складні об'єкти з необов'язковими параметрами читабельно й зручно для підтримки, на відміну від конструкторів із понад 10 параметрами. У сучасному C# init-властивості та record можуть замінити Builder для простих випадків, але Builder залишається корисним для складної валідації чи багатоетапної побудови.
Що таке принцип Single Responsibility (SRP) у SOLID і як його застосовувати в .NET?
Що таке принцип Open/Closed (OCP) у SOLID і як реалізувати його за допомогою interface у .NET?
+21 питань зі співбесід
Інші теми співбесід .NET
Основи C#
LINQ & Delegates
Основи мови C#
Основи ASP.NET Core
Життєвий цикл запиту в ASP.NET Core
Configuration & Settings
Життєвий цикл застосунку
Dependency Injection
Entity Framework Core
Minimal APIs
Розробка Web API
Async в ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Серіалізація JSON
Entity Framework Core просунутий
Розширені можливості C#
Clean Architecture
Logging, Monitoring & Observability
Модульне тестування та xUnit
Інтеграційні тести
Docker & Containerization
Керування пакетами NuGet
Memory Management & GC
Реактивне програмування
Async/await і патерни
Оптимізація продуктивності
Безпека та Best Practices
SignalR і реальний час
Архітектура мікросервісів
Опануй .NET для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно