หนึ่งคำ: ไม่
คำเพิ่มเติม: การฉีดขึ้นอยู่กับว่า เป็นวิธีการที่คุณแนะนำทรัพยากรที่วัตถุอื่นขึ้นอยู่กับ แต่ไม่ควรทราบรายละเอียดที่ซับซ้อนของจากแหล่งอื่น การใช้ DI ไม่ได้หมายความว่าไม่มีสิ่งใดในโปรแกรมของคุณที่ควรรู้วิธีสร้างวัตถุอื่น ๆ ในความเป็นจริงฉันวางตัวว่าเป็นไปไม่ได้อย่างสูงสำหรับโปรแกรมที่ไม่สำคัญเพื่อหลีกเลี่ยงคำหลัก "ใหม่" (หรือทางเลือกที่ใช้การสะท้อน) ทั้งหมด อย่างไรก็ตาม DI หมายความว่าวัตถุที่ไม่ควรรู้วิธีสร้างวัตถุที่ซับซ้อนซึ่งต้องมีการพึ่งพาจำนวนมากที่จะจับคู่วัตถุนี้กับวัตถุอื่นอย่างแน่นหนาไม่ควรมีความรู้ทั้งหมดที่มีอยู่อย่างแน่นหนา
ฉันจะศึกษาทฤษฎีหลักสองประการของการออกแบบซอฟต์แวร์ O / O, GRASP และ SOLID GRASP จะบอกให้คุณศึกษาวัตถุประสงค์ของวัตถุนั้นและถามตัวเองว่า "วัตถุนี้ควรจะรับผิดชอบในการสร้างวัตถุใหม่ประเภทอื่นหรือไม่นี่เป็นส่วนหนึ่งของ 'ลักษณะงาน' ของวัตถุนี้หรือไม่? SOLID ไปอีกขั้นหนึ่ง: "S" ย่อมาจาก "Single Responsibility Principle" ซึ่งระบุไว้อย่างชัดเจนว่าวัตถุควรมีงานหนึ่งงานและควรเป็นวัตถุเดียวในโปรแกรมที่ทำงานเฉพาะนั้น
ดังนั้นโดยทั่วไป GRASP จะแนะนำให้คุณดูคลาสที่มีอยู่ซึ่งการสร้างวัตถุใหม่เหล่านี้และค้นหาสิ่งที่งานการสร้างวัตถุนี้เหมาะกับสิ่งที่วัตถุทำอยู่แล้วในขณะที่รักษาระดับ "การติดต่อ" ที่คุณต้องการ SOLID จะบอกคุณว่าการทำงานร่วมกันเป็นกุญแจสำคัญ งานในการสร้างวัตถุเหล่านี้ควรมอบให้กับโรงงานที่ควรฉีดเข้าไปในชั้นเรียนของคุณ ฉันคิดว่าคุณจะพบว่าเมื่อความซับซ้อนของโปรแกรมของคุณเพิ่มขึ้นอย่างต่อเนื่องการยึดมั่นกับวิธีการเหล่านี้อย่างใดอย่างหนึ่งด้วยความเต็มใจที่จะสร้างใหม่จะส่งผลให้มีสถาปัตยกรรมที่คล้ายกันมาก