2
การฉีดพึ่งพาและวิธีการแบบคงที่
ฉันมีการสนทนาที่น่าสนใจในวันนี้กับผู้พัฒนารายอื่นเกี่ยวกับวิธีการเข้าเรียนด้วยวิธีการที่ยอมรับสตริงและเอาต์พุตสตริง ลองนึกภาพบางสิ่งเช่นสิ่งต่อไปนี้ซึ่งสร้างขึ้นโดยสมบูรณ์เพื่อเป็นตัวอย่าง public string GetStringPart(string input) { //Some input validation which is removed for clarity if(input.Length > 5) return input.Substring(0,1); if(input.Substring(0,1) == "B") return input.Substring(0,3); return string.empty; } ฟังก์ชั่นที่มีตรรกะบางอย่างตามการป้อนสตริงของมันจะถูกเพิ่มเข้าไปในโครงการโดยใช้ DI และมี DI Container ในสถานที่ คุณจะเพิ่มคลาสใหม่นี้ด้วยอินเทอร์เฟซและฉีดเมื่อจำเป็นหรือคุณจะทำให้คลาสคงที่หรือไม่ ข้อดีและข้อเสียของแต่ละข้อคืออะไร? ทำไมคุณ (หรือไม่) ต้องการที่จะทำให้สิ่งนี้ใช้กับการฉีดคอนสตรัคเตอร์แทนที่จะเข้าถึงเมื่อต้องการได้ทุกที่