Sunday 18 February 2018

عكس نمط استراتيجية السيطرة


عكس نمط إستراتيجية التحكم
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
هل يمكن لأي شخص أن يفسر كيف يرتبط نمط الاستراتيجية بعكس السيطرة؟
هل يمكن لأي شخص أن يشرح بالضبط كيف يرتبط نمط الاستراتيجية بعكس السيطرة؟
عند استخدام نمط الإستراتيجية، تريد أن تعتمد الفئات الأخرى على الواجهة بدلا من إستراتيجية ملموسة. طريقة واحدة للقيام بذلك هي أن يتم حقن استراتيجية ملموسة في فئة يستخدمها كواجهة بدلا من فهم الطبقة كيفية إنشاء الاستراتيجية المناسبة. هذا هو المكان الذي يأتي فيه أوك / ديبندنسي إنجكتيون.
والفكرة هي أن لديك نوعا من التكوين أو فئة القرار الذي يحدد الاستراتيجيات التي يجب استخدامها. يمكن أن يكون هذا إطارا ل إوك، ولكن ليس بالضرورة أن يكون. هذه الفئة هي المسؤولة عن تكوين الطبقات الأخرى الخاصة بك مع الاستراتيجية المناسبة بناء على حالة النظام أو التكوين. يتم إنشاء استراتيجية ملموسة وحقن عن طريق منشئ أو الملكية تسوية، وبالتالي "السيطرة" على فئة الاستراتيجية هو مثيل هو "مقلوب" - فإنه لا يتم من قبل الطبقة اعتمادا على ذلك، بل، من الخارج.
من تلقاء نفسها، لا يقدم نمط عكس السيطرة. إذا كان المطور من نمط تنفذ ذلك بحيث يتم حقن خوارزمية قابلة للتبديل في وحدة تحكم، ثم هذا هو انعكاس. إذا كان المنفذ، من ناحية أخرى، يحصل على الخوارزمية لاستخدامها من مصدر آخر (مثل التكوين، أو يحدد ذلك في منشئ وحدة تحكم عن طريق بعض الوسائل الأخرى)، ثم انها مجرد تشغيل الخاص بك من نوع مطحنة من التعليمات البرمجية.
لا أوك هو شيء مختلف كل ذلك معا، يمكنك قراءة المزيد عن أوك و دي هنا أعلى الحصول على الفكرة الفعلية.
ويمكن اعتبار اللجنة الاولمبية الدولية (أوك) كمدير رئيسي (نهايات) يمكن تحقيقه باستخدام نمط الاستراتيجية (الوسائل) لأن نمط سيرفيسلوكاتور سيكون خيارا آخر.

عكس نمط إستراتيجية التحكم
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
عكس السيطرة، حقن التبعية واستراتيجية نمط مع أمثلة في جافا.
أنا غالبا ما يتم الخلط بين هذه المصطلحات الثلاثة. هذه تبدو ثلاثة مماثلة لي. هل يمكن للشخص أن يشرح لي بوضوح، مع أمثلة.
لقد رأيت وظائف مماثلة ولا أفهم تماما.
يشير مصطلح "الاعتماد على الحقن" إلى نمط إخبار فئة ما عن تبعياتها، بدلا من اشتراط أن تعرف الفئة مكان العثور على جميع تبعياتها.
لذلك، على سبيل المثال، تذهب من هذا:
إلى شيء من هذا القبيل:
وهذا يقلل من اقتران في التعليمات البرمجية، وهو مفيد بشكل خاص إذا كنت ترغب في وحدة اختبار وسيرفيتشر. الآن، بدلا من وسيرفيتشر يعمل دائما ضد قاعدة بيانات وجدت في 10.167.1.25، يمكنك تمرير في دبكونكتيون إلى قاعدة بيانات الاختبار. أو، حتى أكثر فائدة في اختبار سريع، يمكنك تمرير في تنفيذ أو فئة فرعية من دبكونكتيون التي لا حتى الاتصال بقاعدة بيانات، فإنه يتجاهل فقط الطلبات!
ومع ذلك، فإن هذا النوع من حقن التبعية البدائية يجعل الأسلاك (توفير كائن مع تبعياته) أكثر صعوبة، لأنك قد حلت محل الوصول إلى التبعية باستخدام متغير عالمي (أو كائن مثبت محليا) مع تمرير التبعية في جميع أنحاء من خلال الرسم البياني الكائن كله .
التفكير في حالة حيث وسيرفيتشر هو الاعتماد على أكونتماناجر، وهو تبعية أدمينكونسول. ثم يحتاج أدمينكونسول لتمرير مثيل دبكونكتيون إلى أكونتماناجر، و أكونتماناجر يحتاج إلى تمريرها إلى وسيرفيتشر. حتى لو لا أدمينكونسول ولا أكونتماناجر تحتاج إلى استخدام دبكونكتيون مباشرة!
ويهدف عكس حاوية التحكم (الربيع، غويس، الخ) إلى جعل الحقن التبعية أسهل عن طريق الأسلاك تلقائيا (توفير) التبعيات. للقيام بذلك، فإنك تخبر حاوية أوك الخاصة بك مرة واحدة عن كيفية تقديم كائن (في الربيع، وهذا ما يسمى الفول) وكلما طلب كائن آخر لهذه التبعية، سيتم توفيرها من قبل الحاوية.
لذلك لدينا مثال آخر قد تبدو مثل هذا مع غويس، إذا استخدمنا حقن منشئ:
وعلينا أن تكوين حاوية أوك. في غويس يتم ذلك عن طريق تنفيذ الوحدة النمطية. في الربيع تكوين سياق التطبيق، في كثير من الأحيان من خلال شمل.
الآن عندما يتم إنشاء وسيرفيتشر بواسطة غويس أو الربيع، يتم توفير دبكونكتيون تلقائيا.
غيس لديه مقالة ويكي جيدة حقا على الدافع وراء حقن التبعية، ومواصلة استخدام حاوية أوك. انها تستحق القراءة على طول الطريق من خلال.
نمط الاستراتيجية هو مجرد حالة خاصة من حقن التبعية، حيث تقوم بحقن المنطق بدلا من كائن (على الرغم من أنه في جافا، سيتم تغليف المنطق في كائن). انها وسيلة لفصل منطق الأعمال المستقل.
على سبيل المثال، قد يكون لديك شفرة مثل هذا:
ولكن ماذا لو كنت ترغب في تمديد هذا الرمز إلى ولاية قضائية جديدة، مع مخطط ضريبة المبيعات المختلفة؟ يمكنك حقن المنطق لحساب الضريبة، مثل هذا:
عكس السيطرة يعني أن إطار وقت التشغيل الأسلاك جميع المكونات معا (على سبيل المثال الربيع). حقن التبعية هو شكل من أشكال أوك (لا أعرف ما إذا كان هناك شكل آخر من أوك) (انظر: en. wikipedia. org/wiki/Inversion_of_control).
نمط الاستراتيجية هو نمط التصميم (الذي حددته الحكومة) حيث يمكن استبدال الخوارزمية بآخر (انظر: en. wikipedia. org/wiki/Strategy_pattern). يتم أرشفة هذا من خلال توفير العديد من تنفيذ نفس واجهة. عند استخدام أوك مثل سبرينغ، إذا كان لديك العديد من تطبيقات واجهة، وإذا كان يمكنك التبديل من تنفيذ إلى آخر بواسطة التكوين، كنت تستخدم نمط الاستراتيجية.
كما أوصي بقراءة فصل مقدمة وثائق الربيع، والذي يركز على هذه المسألة: مقدمة في إطار الربيع.
وينبغي أن تفعل الفقرات القليلة الأولى.
الذي يوفر أيضا وجهة نظر تحفيزية من هذه المفاهيم الأساسية الهامة جدا.

بوكوكابسول: حاوية أوك ل C ++
الثلاثاء، 25 مارس 2008.
عكس السيطرة مقابل نمط الاستراتيجية.
12 تعليق:
مرحبا كي - ربما أسيء فهمك، ولكن هل لا تقول أن الاستراتيجية هي شكل من أشكال حقن الإعالة؟ كما هو الحال في، أحد التقنيات الممكنة الممكنة لتنفيذ دي؟
نمط الاستراتيجية هو متعامد لدي أيضا. من المؤكد أن دي (أو أوك) يستخدم بشكل شعبي في الأسلاك / حقن السياسات أو كائنات خوارزمية إلى سياقات المستخدم الخاصة بهم (كما هو الحال في مثال الحكومة). ومع ذلك، يمكن أيضا حل هذه كائنات السياسة / خوارزمية من قبل سياقات المستخدم باستخدام سياسة / خوارزمية التسجيل بحث الخ .. والفكرة الأساسية للاستراتيجية هي حول العوملة المنطق المنطقي الخوارزمية إلى كائنات السياسة ملزمة في وقت لاحق، بدلا من كيفية حل هذه الكائنات السياسة (الحقن مقابل البحث). لذلك، لا يمكن للمرء أن يدعي أن حل كائنات السياسة / خوارزمية باستخدام البحث الدليل لم يكن نمط استراتيجية.
مرحبا. هذا الموضوع هو مثل، ومدونتك مثيرة جدا للاهتمام، التهاني :-). وسوف أضيف في بلدي بلوقر =). إذا كان ذلك ممكنا يعطي آخر هناك على بلدي بلوق، بل هو عن ماساجيم، وآمل أن تستمتع. العنوان هو ماساجيم-brasil. blogspot. عناق.
لا أعتقد أن الاستراتيجية متعامدة ل أوك، على الرغم من أنها متعامدة لشركة دي. أوك هو مفهوم أوسع بكثير من دي، وأعتقد أن مارتن فاولر يقوم بعمل جيد بحجة أنه حتى المكالمات البسيطة هي أوك. انظر مارتينفولر / بليكي / InversionOfControl. html.
بريان، أنا الخلط. كيف يمكن أن يكون "أوك متعامد مع دي" و "أيوك هو مفهوم أوسع بكثير من دي" كذلك؟ وإذا كانت متعامدة، فإن مقارنة أي منها أوسع من الآخر لن يكون له معنى على الإطلاق.
بلوق الخاص بك يبقى الحصول على أفضل وأفضل! مقالاتك القديمة ليست جيدة مثل أحدث منها لديك الكثير من الإبداع والأصالة الآن يبقيه!
لقد اختبرت ذلك وكتابة شكل تجربتك الشخصية أو تجد بعض المعلومات على الانترنت؟

مقدمة إلى التحكم في الانعكاس وحق الإعالة مع الربيع.
تاريخ آخر تعديل: 28 كانون الأول (ديسمبر) 2016.
أعلنت للتو وحدات الربيع 5 الجديدة في ريست مع الربيع:
1. نظرة عامة.
في هذه المقالة، سنقدم مفاهيم إيوك (عكس التحكم) و دي (حقن التبعية)، ونحن سوف نلقي نظرة على كيفية تنفيذها في إطار الربيع.
2. ما هو عكس السيطرة؟
إن انقلاب التحكم هو مبدأ في هندسة البرمجيات يتم من خلاله نقل عنصر الأشياء أو أجزاء من البرنامج إلى حاوية أو إطار. وغالبا ما يستخدم في سياق البرمجة الموجهة نحو الكائن.
وعلى النقيض من البرمجة التقليدية، التي يقوم فيها رمزنا المخصص بإجراء مكالمات إلى مكتبة، فإن أوك تمكن إطارا من التحكم في تدفق البرنامج وإجراء مكالمات إلى الشفرة المخصصة لدينا. من أجل جعل هذا ممكنا، يتم تعريف الأطر من خلال التجريد مع السلوك إضافية بنيت في. إذا أردنا أن نضيف سلوكنا الخاص، ونحن بحاجة إلى توسيع فئات الإطار أو البرنامج المساعد الطبقات الخاصة بنا.
مزايا هذا العمارة هي:
فصل تنفيذ مهمة من تنفيذها مما يجعل من الاسهل للتبديل بين تطبيقات مختلفة أكبر نمطية من برنامج سهولة أكبر في اختبار برنامج عن طريق عزل عنصر أو سخرية تبعياتها والسماح للمكونات للاتصال من خلال العقود.
ويمكن تحقيق عكس السيطرة من خلال آليات مختلفة مثل: نمط تصميم الاستراتيجية، ونمط خدمة محدد، ونمط المصنع، وحق الإعالة (دي).
نحن & # 8217؛ إعادة النظر في دي المقبل.
3. ما هو "الاعتماد على الحقن"؟
الحقن التبعية هو نمط من خلالها لتنفيذ أوك، حيث يكون مقلوب السيطرة هو تحديد الكائن و # 8217 s التبعيات.
إجراء ربط الأشياء بأشياء أخرى، أو & # 8220؛ الحقن & # 8221؛ الكائنات في الكائنات الأخرى، يتم عن طريق تجميع بدلا من الكائنات نفسها.
هنا & # 8217؛ s كيف يمكنك إنشاء التبعية الكائن في البرمجة التقليدية:
في المثال أعلاه، يمكنك أن ترى أنه من أجل إنشاء التبعية البند كائن مخزن لديك لتحديد أي تنفيذ واجهة البند سنستخدم داخل فئة مخزن نفسها.
باستخدام دي، يمكننا إعادة كتابة المثال دون تحديد تنفيذ العنصر الذي نريده:
وعندئذ سيتم تقديم البند الذي سيتم حقنه من خلال البيانات الشرحية، كما سنرى في الأمثلة أدناه.
كل من يوك و دي هي مفاهيم بسيطة، ولكن لها آثار عميقة في الطريقة التي هيكلة أنظمتنا، حتى أنها & # 8217؛ تستحق جيدا فهم جيدا.
4. الربيع يوك حاوية.
حاوية أوك هي سمة مشتركة من الأطر التي تنفذ أوك.
في إطار الربيع، يتم تمثيل حاوية أوك بواسطة أبليكاتيونكونتيكست. حاوية الربيع مسؤولة عن إنستياتينغ وتكوين وتجميع الكائنات المعروفة باسم الفاصوليا، فضلا عن إدارة دورة حياتها.
يوفر إطار الربيع العديد من تطبيقات واجهة أبليكاتيونكونتيكست - كلاسباثكسملابليكاتيونكونتيكست و فلزيستمكسلابليكاتيونكونتيكست للتطبيقات المستقلة و ويبابليكاتيونكونتيكست لتطبيقات الويب.
من أجل تجميع الفاصوليا، تستخدم الحاوية بيانات التعريف التكوين، والتي يمكن أن تكون في شكل تكوين شمل أو تعليقات توضيحية.
إليك طريقة واحدة لإنشاء حاوية يدويا:
5. حقن التبعية في الربيع.
من أجل تعيين السمة إيتم في المثال أعلاه، يمكننا استخدام البيانات الوصفية التي سيتم استخدامها لتجميع الكائنات في وقت التشغيل بواسطة حاوية سبرينغ.
يمكن أن يتم حقن التبعية في الربيع من خلال منشئ أو واضعي.
5.1. بناء على الاعتماد على الحقن.
في حالة حقن التبعية المستندة إلى منشئ، سوف تستدعي الحاوية منشئ مع وسيطات تمثل كل تبعية نريد تعيينها.
يتم حل كل وسيطة في المقام الأول بواسطة نوع الوسيطة، متبوعة باسم السمة والفهرس لإزالة التشويش. يمكن أن يتم تكوين الفاصوليا واعتمادياتها باستخدام التعليقات التوضيحية:
يشير التعليق التوضيحي التهيئة إلى أن الفئة هي مصدر تعريفات الفول ويمكن استخدامها على فئات تكوين متعددة. يتم استخدام التعليق التوضيحي ل بين على طريقة تعريف الفول. إذا لم تحدد اسم مخصص، فسيتم استخدام اسم الأسلوب.
في حالة استخدام نطاق سينغلتون الافتراضي لفاصوليا، في كل مرة يتم فيها تسمية طريقة مشروحة مع فول، يتم التحقق من سبرينغ أولا إذا كان هناك نسخة مخبأة من الفول موجودة بالفعل، وينشئ فقط واحدا جديدا إذا لم يكن موجودا. إذا تم تحديد نطاق النموذج الأولي، يتم إرجاع مثيل فول جديد لكل مكالمة من الأسلوب.
طريقة أخرى لتكوين الفاصوليا من خلال تكوين شمل:
5.2. حقن الاعتماد على الضبط.
بالنسبة إلى دي المستندة إلى ديتر، ستستدعي الحاوية طرق ضبط الفئتك، بعد استدعاء منشئ لا وسيطة أو أسلوب مصنع ثابت بدون وسيطة لإنشاء الفول. السماح بإنشاء هذا التهيئة باستخدام التعليقات التوضيحية:
يمكننا أيضا استخدام شمل لنفس التكوين من الفاصوليا:
ويمكن الجمع بين القائم على القائم على المنشئ وأنواع القائم على الحقن من الحقن لنفس الفاصوليا. فمن المستحسن من قبل وثائق الربيع لاستخدام حقن القائم على منشئ للتبعيات الإلزامية، والحقن القائم على واضعة لتلك الاختيارية.
5.3. أوبينينغ التبعيات.
الأسلاك تسمح حاوية الربيع لحل تلقائيا التبعيات بين الفول التعاون عن طريق فحص الفاصوليا التي تم تعريفها.
هناك أربعة أنماط من أوتويرينغ الفول باستخدام تكوين شمل:
نو: القيمة الافتراضية & # 8211؛ وهذا يعني عدم استخدام أوتويرينغ للفاصوليا والاعتماديات يجب أن يكون اسمه صراحة من قبل نيم: يتم أوتويرينغ على أساس اسم الخاصية، وبالتالي سوف الربيع بحث عن الفول مع نفس الاسم الخاصية التي تحتاج إلى تعيين من قبل تايب : على غرار بينام أوتويرينغ، فقط استنادا إلى نوع من الممتلكات، وهو ما يعني الربيع سوف نبحث عن الفول مع نفس النوع من الممتلكات لتعيين. إذا تم العثور على أكثر من حبة واحدة من هذا النوع، الإطار يلقي منشئ استثناء: يتم أوتويرينغ بناء على الحجج منشئ، وهذا يعني سوف الربيع بحث عن الفاصوليا مع نفس النوع من الحجج منشئ.
على سبيل المثال، اسمح & # 8217؛ s أوتوير العنصر item1 الفول المعرفة أعلاه حسب نوع في مخزن:
يمكنك أيضا حقن الفاصوليا باستخدام التعليق التوضيحي التلقائي ل أوتويرينغ حسب النوع:
إذا كان هناك أكثر من حبة واحدة من النوع نفسه، يمكنك إضافة التعليق التوضيحي المؤهل للإشارة إلى فول بالاسم:
دع الفاصوليا التلقائية أوتوير حسب النوع من خلال تهيئة شمل:
الآن اسمحوا & # 8217؛ s حقن عنصر اسمه في العنصر الخاصية العنصر من فول مخزن بالاسم من خلال شمل:
يمكنك أيضا تجاوز أوتويرينغ عن طريق تحديد التبعيات صراحة من خلال وسيطات منشئ أو واضعي.
5.4. كسول الفاصوليا إنيتياليزد.
افتراضيا، تقوم الحاوية بإنشاء وتكوين كل حبوب سينغليتون أثناء التهيئة. لتجنب ذلك، يمكنك تحديد السمة كسول-إينيت مع القيمة الحقيقية على تكوين الفول:
ونتيجة لذلك، لن يتم تهيئة حافظة البند 1 إلا عند طلبها لأول مرة، وليس عند بدء التشغيل. ميزة هذا هو أسرع وقت التهيئة، ولكن المفاضلة هي أن أخطاء التكوين يمكن اكتشافها إلا بعد طلب الفول، والتي يمكن أن تكون عدة ساعات أو حتى أيام بعد التطبيق قد تم بالفعل تشغيل.
6 - الخلاصة.
في هذه المقالة، قدمنا ​​مفاهيم انقلاب السيطرة والحقن التبعية ومثلها في إطار الربيع.
يمكنك قراءة المزيد عن هذه المفاهيم في مقالات مارتن فاولر & # 8217؛ s:
ويمكنك معرفة المزيد عن تطبيقات الربيع ل أوك و دي في الوثائق المرجعية الإطار الربيع.

No comments:

Post a Comment