ฉันกำลังปรับโครงสร้างแอปพลิเคชันPHPอีกครั้งและฉันพยายามทำให้มีการพึ่งพาการฉีด (DI) มากที่สุดเท่าที่จะทำได้
ฉันรู้สึกว่าฉันเข้าใจดีว่ามันทำงานอย่างไรและฉันสามารถเห็นชั้นเรียนของฉันกลายเป็นคนผอมเพรียวและแข็งแกร่งขึ้น
ฉัน refactoring เพื่อให้ฉันสามารถฉีดการพึ่งพามากกว่าการสร้างวัตถุใหม่ภายในชั้นเรียน แต่ในบางจุดฉันจะต้องสร้างวัตถุบางอย่างนั่นคือใช้new
คำหลักที่หวั่น
ปัญหาที่ฉันพบตอนนี้คือจุดใดที่ฉันสามารถสร้างวัตถุใหม่ได้จริง? ดูเหมือนว่าฉันจะลงเอยที่ชั้นบนสุดสร้างวัตถุใหม่มากมายเพราะไม่มีที่ไหนให้ไป สิ่งนี้รู้สึกผิด
ฉันได้อ่านบล็อกบางอย่างที่ใช้คลาสของโรงงานเพื่อสร้างออบเจ็กต์ทั้งหมดจากนั้นคุณฉีดโรงงานลงในคลาสอื่น จากนั้นคุณสามารถเรียกวิธีการจากโรงงานและโรงงานจะสร้างวัตถุใหม่ให้คุณ
ความกังวลของฉันเกี่ยวกับการทำเช่นนี้คือตอนนี้ชั้นเรียนโรงงานของฉันกำลังจะเป็นแบบnew
ฟรีสำหรับทุกคน! ฉันเดาว่ามันอาจจะโอเคเนื่องจากคลาสของโรงงาน แต่มีกฎบางอย่างที่ต้องยึดติดเมื่อใช้รูปแบบจากโรงงานและ DI หรือฉันจะปิดเครื่องหมายที่นี่หรือไม่
new
สำหรับรูปแบบหรือผู้ช่วยที่เรียนฉันต้องการเพียงแค่การใช้งาน แน่นอนว่ามีจุดเข้าใช้งานไม่กี่จุดที่คุณต้องโทรเข้าไปในคอนเทนเนอร์ IoC แต่ไม่ควรมีมากนัก โดยทั่วไปแล้วคุณกำหนดค่า IoC หนึ่งครั้งแล้วขอให้ชั้นหนึ่งได้รับการแก้ไขตามคำขอ ในกรณีของ MVC ปกติแล้วจะเป็นคอนโทรลเลอร์