.NET

.NET Design Patterns

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

24 câu hỏi phỏng vấn·
Senior
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.

4

Single Responsibility Principle (SRP) trong SOLID là gì và áp dụng nó trong .NET như thế nào?

5

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

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í