
.NET Design Patterns
Singleton, Factory, Builder, Strategy, Decorator, Repository, Unit of Work, SOLID
1ปัญหาหลักของ Singleton pattern ใน .NET สมัยใหม่ที่ใช้ Dependency Injection คืออะไร?
ปัญหาหลักของ Singleton pattern ใน .NET สมัยใหม่ที่ใช้ Dependency Injection คืออะไร?
คำตอบ
Singleton pattern แบบดั้งเดิม (static instance) ขัดแย้งกับ dependency injection เพราะสร้างการผูกมัดที่แน่นเกินไปและทำให้การทดสอบยาก ใน .NET สมัยใหม่ ควรใช้ service lifetime แบบ 'Singleton' ผ่าน DI (services.AddSingleton) ซึ่งให้การรับประกัน instance เดียวเหมือนกันพร้อมทั้งรองรับ injection, mocking และความสามารถในการทดสอบ ส่วน Singleton แบบ static จะข้าม DI container และสร้างการพึ่งพาที่ซ่อนอยู่
2ในรูปแบบ Factory Method ความแตกต่างระหว่าง Factory Method และ Abstract Factory ใน .NET คืออะไร?
ในรูปแบบ Factory Method ความแตกต่างระหว่าง Factory Method และ Abstract Factory ใน .NET คืออะไร?
คำตอบ
Factory Method กำหนดเมธอดแบบ virtual เพื่อสร้างอ็อบเจกต์ชนิดเดียว (เช่น CreateLogger) โดยให้ subclass เป็นผู้ตัดสินใจว่าจะสร้างอินสแตนซ์ของคลาสรูปธรรมใด ส่วน Abstract Factory กำหนด interface เพื่อสร้างกลุ่มของอ็อบเจกต์ที่เกี่ยวข้องกัน (เช่น IUIFactory ที่มี CreateButton, CreateTextBox) ทำให้สามารถสร้างผลิตภัณฑ์หลายตัวที่สอดคล้องกันพร้อมกันได้ Factory Method มุ่งเน้นที่ผลิตภัณฑ์เดียวด้วย polymorphism ในขณะที่ Abstract Factory จัดการผลิตภัณฑ์หลายตัวจากตระกูลเดียวกัน
3ข้อได้เปรียบหลักของ Builder pattern ใน .NET สำหรับการสร้างอ็อบเจกต์ที่ซับซ้อนซึ่งมีพารามิเตอร์ทางเลือกจำนวนมากคืออะไร?
ข้อได้เปรียบหลักของ Builder pattern ใน .NET สำหรับการสร้างอ็อบเจกต์ที่ซับซ้อนซึ่งมีพารามิเตอร์ทางเลือกจำนวนมากคืออะไร?
คำตอบ
Builder pattern หลีกเลี่ยง telescoping constructor (overload หลายตัวที่มีการผสมพารามิเตอร์ต่างกัน) ด้วยการมี interface แบบ fluent เพื่อสร้างอ็อบเจกต์ทีละขั้นตอน ทำให้สามารถสร้างอ็อบเจกต์ที่ซับซ้อนซึ่งมีพารามิเตอร์ทางเลือกได้อย่างอ่านง่ายและดูแลรักษาง่าย ต่างจาก constructor ที่มีพารามิเตอร์มากกว่า 10 ตัว ใน C# สมัยใหม่ init properties และ record สามารถแทนที่ Builder ได้ในกรณีง่าย ๆ แต่ Builder ยังมีประโยชน์สำหรับการตรวจสอบที่ซับซ้อนหรือการสร้างแบบหลายขั้นตอน
Single Responsibility Principle (SRP) ใน SOLID คืออะไร และนำไปใช้ใน .NET อย่างไร?
หลักการ Open/Closed (OCP) ใน SOLID คืออะไร และจะนำไปใช้กับ interface ใน .NET ได้อย่างไร?
+21 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ .NET อื่นๆ
พื้นฐาน C#
LINQ & Delegates
พื้นฐานสำคัญของภาษา C#
พื้นฐาน ASP.NET Core
วงจรชีวิตของ request ใน ASP.NET Core
Configuration & Settings
วงจรชีวิตของแอปพลิเคชัน
Dependency Injection
Entity Framework Core
Minimal APIs
การพัฒนา Web API
Async ใน ASP.NET Core
Authentication & Authorization
HttpClient & Networking
การซีเรียลไลซ์ JSON
Entity Framework Core ขั้นสูง
ฟีเจอร์ขั้นสูงของ C#
Clean Architecture
Logging, Monitoring & Observability
Unit Testing และ xUnit
การทดสอบแบบบูรณาการ
Docker & Containerization
การจัดการแพ็กเกจ NuGet
Memory Management & GC
การเขียนโปรแกรมแบบรีแอกทีฟ
Async/await และรูปแบบ
การเพิ่มประสิทธิภาพการทำงาน
ความปลอดภัยและ Best Practices
SignalR และเรียลไทม์
สถาปัตยกรรม Microservices
เชี่ยวชาญ .NET สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี