هو نمط تصميم برمجي يهدف لتقليل الارتباط بين مكونات النظام.
يتم تمرير الكائنات التي يعتمد عليها الكود من الخارج بدلاً من إنشائها بداخله.