.NET

.NET Design Patterns

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

24 perguntas de entrevista·
Senior
1

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.

2

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.

3

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.

4

O que é o princípio de Single Responsibility (SRP) no SOLID e como aplicá-lo no .NET?

5

O que é o princípio Open/Closed (OCP) no SOLID e como implementá-lo com interfaces no .NET?

+21 perguntas de entrevista

Domine .NET para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis