# .NET Design Patterns (.NET) > Singleton, Factory, Builder, Strategy, Decorator, Repository, Unit of Work, SOLID - 24 câu hỏi phỏng vấn - Senior - [Câu hỏi phỏng vấn: .NET](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van.md) ## 1. Vấn đề chính của pattern Singleton trong .NET hiện đại với Dependency Injection là gì? **Câu trả lời** Pattern Singleton cổ điển (instance tĩnh) xung đột với dependency injection vì nó tạo ra sự ràng buộc chặt chẽ và khiến việc kiểm thử trở nên khó khăn. Trong .NET hiện đại, tốt hơn nên dùng service lifetime 'Singleton' qua DI (services.AddSingleton), vốn cung cấp cùng đảm bảo về instance duy nhất đồng thời cho phép injection, mocking và khả năng kiểm thử. Singleton tĩnh bỏ qua DI container và tạo ra các phụ thuộc ẩn. ## 2. Trong pattern Factory Method, sự khác biệt giữa Factory Method và Abstract Factory trong .NET là gì? **Câu trả lời** Factory Method định nghĩa một phương thức ảo để tạo một loại đối tượng duy nhất (ví dụ: CreateLogger), cho phép các lớp con quyết định lớp cụ thể nào được khởi tạo. Abstract Factory định nghĩa một interface để tạo các họ đối tượng liên quan (ví dụ: IUIFactory với CreateButton, CreateTextBox), cho phép tạo nhiều sản phẩm nhất quán cùng nhau. Factory Method tập trung vào một sản phẩm duy nhất với tính đa hình, còn Abstract Factory quản lý nhiều sản phẩm thuộc cùng một họ. ## 3. Ưu điểm chính của pattern Builder trong .NET khi tạo các đối tượng phức tạp với nhiều tham số tùy chọn là gì? **Câu trả lời** Pattern Builder tránh các constructor telescoping (nhiều overload với các tổ hợp tham số khác nhau) bằng cách cung cấp một interface fluent để xây dựng đối tượng từng bước. Nó cho phép tạo các đối tượng phức tạp với tham số tùy chọn theo cách dễ đọc và dễ bảo trì, không như các constructor có hơn 10 tham số. Trong C# hiện đại, init properties và record có thể thay thế Builder cho các trường hợp đơn giản, nhưng Builder vẫn hữu ích cho việc kiểm tra phức tạp hoặc xây dựng nhiều bước. ## Còn 21 câu hỏi nữa - Single Responsibility Principle (SRP) trong SOLID là gì và áp dụng nó trong .NET như thế nào? - Nguyên lý Open/Closed (OCP) trong SOLID là gì và làm thế nào để triển khai nó với interface trong .NET? Đăng ký miễn phí: https://sharpskill.dev/vi/login ## Các chủ đề phỏng vấn .NET khác - [Cơ bản về C#](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/csharp-basics.md): 25 câu hỏi, Junior - [LINQ & Delegates](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/csharp-linq-delegates.md): 20 câu hỏi, Junior - [Kiến thức cốt lõi ngôn ngữ C#](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/csharp-language-essentials.md): 15 câu hỏi, Junior - [Kiến thức cơ bản về ASP.NET Core](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/aspnet-core-fundamentals.md): 18 câu hỏi, Junior - [Vòng đời request trong ASP.NET Core](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/aspnet-core-request-lifecycle.md): 20 câu hỏi, Junior - [Configuration & Settings](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/configuration-settings.md): 20 câu hỏi, Junior - [Vòng đời ứng dụng](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/application-lifecycle.md): 20 câu hỏi, Junior - [Dependency Injection](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/dependency-injection.md): 24 câu hỏi, Mid-Level - [Entity Framework Core](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/entity-framework-core.md): 25 câu hỏi, Mid-Level - [Minimal APIs](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/minimal-apis.md): 18 câu hỏi, Mid-Level - [Phát triển Web API](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/web-api-development.md): 22 câu hỏi, Mid-Level - [Async trong ASP.NET Core](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/async-aspnet-core.md): 20 câu hỏi, Mid-Level - [Authentication & Authorization](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/authentication-authorization.md): 18 câu hỏi, Mid-Level - [HttpClient & Networking](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/httpclient-networking.md): 20 câu hỏi, Mid-Level - [Tuần tự hóa JSON](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/json-serialization.md): 20 câu hỏi, Mid-Level - [Entity Framework Core nâng cao](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/ef-core-advanced.md): 25 câu hỏi, Mid-Level - [Các tính năng nâng cao của C#](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/csharp-advanced-features.md): 20 câu hỏi, Mid-Level - [Clean Architecture](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/clean-architecture.md): 20 câu hỏi, Mid-Level - [Logging, Monitoring & Observability](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/logging-monitoring.md): 22 câu hỏi, Mid-Level - [Kiểm thử đơn vị & xUnit](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/unit-testing-xunit.md): 20 câu hỏi, Mid-Level - [Kiểm thử tích hợp](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/integration-testing.md): 18 câu hỏi, Mid-Level - [Docker & Containerization](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/docker-containerization.md): 16 câu hỏi, Mid-Level - [Quản lý gói NuGet](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/nuget-package-management.md): 16 câu hỏi, Mid-Level - [Memory Management & GC](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/memory-management-gc.md): 22 câu hỏi, Senior - [Lập trình phản ứng](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/reactive-programming.md): 24 câu hỏi, Senior - [Async/await & Mẫu thiết kế](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/async-await-patterns.md): 26 câu hỏi, Senior - [Tối ưu hóa hiệu năng](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/performance-optimization.md): 22 câu hỏi, Senior - [Bảo mật & Best Practices](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/security-best-practices.md): 24 câu hỏi, Senior - [SignalR & Thời gian thực](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/signalr-realtime.md): 22 câu hỏi, Senior - [Kiến trúc Microservices](https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/microservices-architecture.md): 25 câu hỏi, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/vi/technologies/dotnet/cau-hoi-phong-van/dotnet-design-patterns