سؤال

طريقة أخرى لطرح هذا السؤال هو:ما هو انعكاس السيطرة وفقا أنت ؟

أنا أسأل هذا السؤال لأن ويكيبيديا المادة على اللجنة الأولمبية الدولية قد تم اختطافها من قبل غير OO التفسير.هذا هو مأخوذ من صفحة نقاش و هو من 2007:

أخذت الحرية تماما إعادة كتابة الصفحة السابقة المحتوى اتخذت تماما على معنى "الشيئية" الثرثرة ...

أنا لا أرى كيف قلب من التحكم يجعل من أي معنى خارج OO اللغة.هناك بالفعل العديد من التفسيرات التخلي عن التحكم في اللغات الإجرائية (الحدث برمجة واحدة) وظيفية بحتة اللغات لا تحتاج مفهوم مثل انعكاس السيطرة منذ لديهم الوظائف العليا.

أيضا ، المادة حيث مارتن فاولر بالتفصيل اللجنة الاولمبية الدولية انه ينفرد OO الأمثلة.

لذا هو الأولمبية الدولية حصرية OO مفهوم و ما هو بالضبط ؟

لي IoC يحاول تحويل الوظائف إلى البيانات في حدود أن معظم OO اللغات فرض و يحاول تمرير تلك الوظائف حسب البيانات الحجج إلى وظائف أخرى.هذا ليس سوى جزء من اللجنة الأولمبية الدولية ، ولكن هناك بعض من ذلك.

هناك أيضا تصميم مصنع نمط ، حيث الأشجار من الكائنات التي يجري بناؤها وتكوينها قبل أن يتم تمريرها.

لي الأولمبية الدولية حصرية OO المفهوم.

ما هو جوابك ؟

هل كانت مفيدة؟

المحلول

تبدو في نظري المشكلة من implementational وجهة نظر.والسؤال الأول الذي يطرح نفسه يجب أن يكون بالضبط ما تحكم هل عكس ?

ثم فسوف ندرك أنه لا يهم سواء لها كائن, طريقة, وظيفة أو غيرها التي يتم تمريرها حولها ، ولكن في الواقع ما في المدونة.

باختصار, عند القيام حقن التبعية ، عكس السيطرة إنشاء واستخدام تبعيات (الموارد).

عندما تعطي وظيفة API مؤشر إلى وظيفة رد الاتصال التي يمكنك السيطرة على استدعاء الدالة مع المعلمات الخاصة بهم.

لذلك ترى اللجنة الأوقيانوغرافية الحكومية الدولية هو مجرد مفهوم نظري ، و بالطبع لا يمكن أن تكون مختلفة التنفيذ العملي منه.

نصائح أخرى

وعكس من الرقابة هو بالتأكيد ليس مفهوما OO.

واللجنة الاولمبية الدولية موجود ويستخدم في كثير من الأحيان الى حد بعيد في اللغات غير OO. ومن الشائع جدا في C، على سبيل المثال. ومن أبرز الأمثلة على ذلك هو ويندوز API - أي وقت استدعاء أية وظائف API ويندوز التي تعمل عبر الاسترجاعات، كنت في الأساس باستخدام اللجنة الاولمبية الدولية في انها الشكل الأكثر بدائية

وعلى سبيل المثال، نلقي نظرة على EnumWindows وظيفة. باستخدام هذا، يمكنك تمرير مؤشر دالة (EnumWindowsProc) إلى مكتبة، ويتم تشغيل التعليمات البرمجية من ضمن رمز المكتبة.

وقارن هذا إلى تعريف عكس مراقبة من ويكيبيديا: "عكس السيطرة يحدث عند استدعاء إجراء مكتبة الإجراء المستخدم (ق)"

وانها بالضبط نفس الشيء.

ولكن، اللجنة الاولمبية الدولية يصبح حقا قوية جدا ومرنة وسهلة الاستخدام عند إضافة نوع نظام غني والعديد من الأدوات الأخرى التي تأتي مع OOP. وهذا يجعل الأمر أكثر شيوعا، لأنه "أجمل" للعمل مع، لكنها كانت موجودة قبل مكتب الرئيس.

وكذلك، فإن مفهوم "انقلاب السيطرة" يبدو ينطبق في كل مكان لديك بعض طريقة لتمرير مؤشرات الدالة حولها. في الأساس، والمكونات في المفاهيم ودلس مع التوقيعات متوافقة (اعتقد السائقين على سبيل المثال) ليست سوى شكل من أشكال اللجنة الاولمبية الدولية.

ومع ذلك، عند استخدام اللجنة الاولمبية الدولية مع نوع الغني ونموذج حاوية، عليك أن تكون أساسا في العالم OO تلقائيا. ومفاهيم OOP خريطة جيدا لمفاهيم اللجنة الاولمبية الدولية، وخاصة في اللغات التي تدعم وراثة متعددة مع الفصول الافتراضية نقية (أو "واجهات"، كما يطلق تلك أيضا).

في الواقع، وتنفيذ OO من اللجنة الاولمبية الدولية هو معقد جدا، لأن وظائف ليست في كثير من الأحيان مواطنين من الدرجة الأولى.

وكما ذكر Azder: يستخدم اللجنة الاولمبية الدولية لكثير من الأسباب. أنا تلخيص بعض هنا لاقناع:)

والتكرار

#ruby
{1,2,3}.each{ |i| puts i }

#haskell
map [1,2,3] ( \i -> write i )

//the stl algorithms
int printint( int i ){ return printf( "%d", i ); }
std::foreach( onetwothree.begin(), onetwothree.end(), &printi );

وإنشاء الموضوع

CreateThread( NULL, 0, &myFunction, NULL, 0, NULL );

والحدث العام إيفاد

//javascript
document.getElementById( "mybutton" )
            .addEventListener( 
                 function(e){ alert("buttonPressed") } );

وأي من هذه الأمثلة وجوه المنحى، q.e.d ..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top