إتقان موضوع عكس التحكم

في هندسة البرمجيات، يعد عكس التحكم (IoC) (بالإنجليزية: inversion of control) مبدأ في البرمجة. يعكس IoC تدفق التحكم flow of control مقارنة بتدفق التحكم التقليديtraditional control flow. في IoC ، تتلقى أجزاء مكتوبة خصيصًا custom-written portions من برنامج الكمبيوتر تدفق التحكم من إطار عامgeneric framework. إن هندسة البرمجيات software architectureمع هذا التصميم تعكس التحكم مقارنة بالبرمجة الإجرائية procedural programming التقليدية: في البرمجة التقليدية، الرمز code المخصص الذي يعبر عن الغرض من البرنامج يستدعي callsمكتبات libraries قابلة لإعادة الاستخدام لرعاية المهام العامة generic tasks، ولكن مع عكس التحكم، فهو الإطارframework الذي يستدعي الرمز code المخصصcustom أو الخاص بالمهمة task-specific.

يستخدم عكس التحكم لزيادة نمطيةmodularity البرنامج وجعله قابلاً للتوسيع extensible، ولديه تطبيقات في البرمجة الشيئيةobject-oriented programming ونماذج البرمجة programming paradigmsالأخرى. استخدم مايكل ماتسونMichael Mattsson هذا المصطلح في أطروحة، مأخوذة من هناك بواسطة ستيفانو مازوتشي Stefano Mazzocchiوشاعه في عام 1999 في مشروع مؤسسة برمجيات أباتشي البائدdefunct Apache Software Foundation project ، أفالون-Avalon> ، ثم تم تعميمه في عام 2004 من قبل روبرت سي مارتن Robert C. Martinو مارتن فاولرMartin Fowler .

يرتبط المصطلح بمبدأ انقلاب التبعية dependency inversion principle، ولكنه يختلف عنه، والذي يهتم بفصل التبعياتdecoupling dependencies بين الطبقات عالية المستوى ومنخفضة المستوى high-level and low-level layers من خلال التجريداتabstractions المشتركة. يرتبط المفهوم العام أيضًا بالبرمجة القائمة على الأحداثevent-driven programming من حيث أنه غالبًا ما يتم تنفيذه باستخدام IoC ، بحيث لا يهتم الرمز المخصصcustom code عادة إلا بمعالجة الأحداث handling of events، في حين يتم التعامل مع حلقة الأحداث event loopوإرسال dispatchالأحداث / الرسائل من خلال الإطارframework أو بيئة وقت التشغيل runtime environment..

قراءة المقال الكامل على ويكيبيديا ←