ฉันเคยได้ยินเกี่ยวกับการใช้การฉีดขึ้นเหนือ Singleton สำหรับเพื่อนร่วมงานของฉัน ฉันยังไม่สามารถบอกได้ว่ามันเป็นสองรูปแบบมุมฉากซึ่งสามารถแทนที่ด้วยอีกรูปแบบหนึ่งได้หรือไม่? หรือ DI เป็นวิธีที่ทำให้รูปแบบซิงเกิลทดสอบได้หรือไม่?
โปรดดูข้อมูลโค้ดต่อไปนี้
IMathFace obj = Singleton.Instance;
SingletonConsumer singConsumer = new SingletonConsumer(obj);
singConsumer.ConsumerAdd(10,20);
ยอมรับพารามิเตอร์ของชนิดSingletonConsumer
IMathFace
แทนที่จะเข้าถึงคลาส singleton ภายในSingletonConsumer
จะได้รับอินสแตนซ์ singleton ที่ส่งโดยผู้เรียก นี่เป็นตัวอย่างที่ดีของการบริโภคคลาสซิงเกิลผ่านการฉีดแบบพึ่งพาหรือไม่