
.NET Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Repository, Unit of Work, SOLID
1Qual é o principal problema do padrão Singleton no .NET moderno com Dependency Injection?
Qual é o principal problema do padrão Singleton no .NET moderno com Dependency Injection?
Resposta
O padrão Singleton clássico (instância estática) entra em conflito com a injeção de dependências porque cria um acoplamento forte e dificulta os testes. No .NET moderno, é melhor usar o lifetime de serviço 'Singleton' via DI (services.AddSingleton), que oferece a mesma garantia de instância única ao mesmo tempo que possibilita a injeção, o mocking e a testabilidade. O Singleton estático ignora o contêiner de DI e cria dependências ocultas.
2No padrão Factory Method, qual é a diferença entre Factory Method e Abstract Factory no .NET?
No padrão Factory Method, qual é a diferença entre Factory Method e Abstract Factory no .NET?
Resposta
Factory Method define um método virtual para criar um único tipo de objeto (ex.: CreateLogger), permitindo que as subclasses decidam qual classe concreta instanciar. Abstract Factory define uma interface para criar famílias de objetos relacionados (ex.: IUIFactory com CreateButton, CreateTextBox), permitindo criar vários produtos coerentes em conjunto. Factory Method foca em um único produto com polimorfismo, enquanto Abstract Factory gerencia vários produtos de uma mesma família.
3Qual é a principal vantagem do padrão Builder no .NET para criar objetos complexos com muitos parâmetros opcionais?
Qual é a principal vantagem do padrão Builder no .NET para criar objetos complexos com muitos parâmetros opcionais?
Resposta
O padrão Builder evita os construtores telescópicos (múltiplos overloads com diferentes combinações de parâmetros) ao fornecer uma interface fluente para construir o objeto passo a passo. Permite criar objetos complexos com parâmetros opcionais de forma legível e fácil de manter, ao contrário de construtores com mais de 10 parâmetros. No C# moderno, as init properties e os records podem substituir o Builder em casos simples, mas o Builder continua útil para validações complexas ou construção em várias etapas.
O que é o princípio de Single Responsibility (SRP) no SOLID e como aplicá-lo no .NET?
O que é o princípio Open/Closed (OCP) no SOLID e como implementá-lo com interfaces no .NET?
+21 perguntas de entrevista
Outros temas de entrevista .NET
Fundamentos de C#
LINQ & Delegates
Fundamentos da linguagem C#
Fundamentos do ASP.NET Core
Ciclo de vida das requisições no ASP.NET Core
Configuration & Settings
Ciclo de vida da aplicação
Dependency Injection
Entity Framework Core
Minimal APIs
Desenvolvimento de Web API
Async no ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Serialização JSON
Entity Framework Core avançado
Recursos avançados do C#
Clean Architecture
Logging, Monitoring & Observability
Testes unitários e xUnit
Testes de integração
Docker & Containerization
NuGet Package Management
Memory Management & GC
Programação reativa
Async/await & Patterns
Otimização de desempenho
Segurança e Best Practices
SignalR e tempo real
Arquitetura de Microsserviços
Domine .NET para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis