
.NET Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Repository, Unit of Work, SOLID
1Vấn đề chính của pattern Singleton trong .NET hiện đại với Dependency Injection là gì?
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.
2Trong pattern Factory Method, sự khác biệt giữa Factory Method và Abstract Factory trong .NET là gì?
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ì?
Ư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.
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?
+21 câu hỏi phỏng vấn
Các chủ đề phỏng vấn .NET khác
Cơ bản về C#
LINQ & Delegates
Kiến thức cốt lõi ngôn ngữ C#
Kiến thức cơ bản về ASP.NET Core
Vòng đời request trong ASP.NET Core
Configuration & Settings
Vòng đời ứng dụng
Dependency Injection
Entity Framework Core
Minimal APIs
Phát triển Web API
Async trong ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Tuần tự hóa JSON
Entity Framework Core nâng cao
Các tính năng nâng cao của C#
Clean Architecture
Logging, Monitoring & Observability
Kiểm thử đơn vị & xUnit
Kiểm thử tích hợp
Docker & Containerization
Quản lý gói NuGet
Memory Management & GC
Lập trình phản ứng
Async/await & Mẫu thiết kế
Tối ưu hóa hiệu năng
Bảo mật & Best Practices
SignalR & Thời gian thực
Kiến trúc Microservices
Nắm vững .NET cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí