
.NET Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Repository, Unit of Work, SOLID
1¿Cuál es el principal problema del patrón Singleton en .NET moderno con Dependency Injection?
¿Cuál es el principal problema del patrón Singleton en .NET moderno con Dependency Injection?
Respuesta
El patrón Singleton clásico (instancia estática) entra en conflicto con la inyección de dependencias porque genera un acoplamiento fuerte y dificulta las pruebas. En .NET moderno, conviene usar el lifetime de servicio 'Singleton' mediante DI (services.AddSingleton), que ofrece la misma garantía de instancia única a la vez que permite la inyección, el mocking y la testabilidad. El Singleton estático elude el contenedor de DI y crea dependencias ocultas.
2En el patrón Factory Method, ¿cuál es la diferencia entre Factory Method y Abstract Factory en .NET?
En el patrón Factory Method, ¿cuál es la diferencia entre Factory Method y Abstract Factory en .NET?
Respuesta
Factory Method define un método virtual para crear un solo tipo de objeto (p. ej., CreateLogger), permitiendo que las subclases decidan qué clase concreta instanciar. Abstract Factory define una interface para crear familias de objetos relacionados (p. ej., IUIFactory con CreateButton, CreateTextBox), permitiendo crear varios productos coherentes en conjunto. Factory Method se centra en un solo producto con polimorfismo, mientras que Abstract Factory gestiona varios productos de una misma familia.
3¿Cuál es la principal ventaja del patrón Builder en .NET para crear objetos complejos con muchos parámetros opcionales?
¿Cuál es la principal ventaja del patrón Builder en .NET para crear objetos complejos con muchos parámetros opcionales?
Respuesta
El patrón Builder evita los constructores telescópicos (múltiples overloads con distintas combinaciones de parámetros) al proporcionar una interface fluida para construir el objeto paso a paso. Permite crear objetos complejos con parámetros opcionales de forma legible y mantenible, a diferencia de los constructores con más de 10 parámetros. En C# moderno, las init properties y los records pueden reemplazar a Builder en casos simples, pero Builder sigue siendo útil para validaciones complejas o construcciones de varios pasos.
¿Qué es el principio de Single Responsibility (SRP) en SOLID y cómo aplicarlo en .NET?
¿Qué es el principio Open/Closed (OCP) en SOLID y cómo implementarlo con interfaces en .NET?
+21 preguntas de entrevista
Otros temas de entrevista .NET
Fundamentos de C#
LINQ & Delegates
Fundamentos del lenguaje C#
Fundamentos de ASP.NET Core
Ciclo de vida de las solicitudes en ASP.NET Core
Configuration & Settings
Ciclo de vida de la aplicación
Dependency Injection
Entity Framework Core
Minimal APIs
Desarrollo de Web API
Async en ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Serialización JSON
Entity Framework Core avanzado
Características avanzadas de C#
Clean Architecture
Logging, Monitoring & Observability
Pruebas unitarias y xUnit
Pruebas de integración
Docker & Containerization
NuGet Package Management
Memory Management & GC
Programación reactiva
Async/await & Patterns
Optimización del rendimiento
Seguridad y Best Practices
SignalR y tiempo real
Arquitectura de Microservicios
Domina .NET para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis