الرسوم المتحركة: كيف يمكن تفسير ما محول نموذج صديقة؟

وطبع هذا المقال بإذن من التجول البرمجة ( ID: mhcoding)

ذبيان | وو Xingling

عش عطلة نهاية الأسبوع في المنزل، الذي فاز ملك المجد، صديقة اللعب مع جهاز الكمبيوتر الخاص بي في اليوم التالي، كنت أظن لها بث الصوت متنوعة تظهر كبيرة نسبيا، لذلك اقتراح وقالت انها ترتدي سماعات الرأس.

وضع محول

محول نمط، وترجم عادة في وضع محول، وتسمى أحيانا طريقة التغليف (نادي الهلال التطبيق إيه نمط)، وهي واحدة من صندوق جلوبل القناص 23 نوعا من أنماط التصميم. الدور الرئيسي هو واجهة لفئة من عملاء تتوقعه واجهة أخرى. محول نمط يجعل تلك الفئات خلاف ذلك بسبب واجهات تتعارض لا يمكن أن تعمل معا للعمل معا.

"أنماط تصميم: عناصر قابلة لإعادة الاستخدام البرمجيات الشيئية" ( "أنماط تصميم")، بشكل جماعي إريك غاما، ريتشارد هيلم، رالف جونسون وجون فليسيديس و(أديسون ويسلي، 1995). هؤلاء المؤلفين غالبا ما تسمى "عصابة الأربعة)، ويشار إلى أن صندوق جلوبل القناص.

وتصنف صندوق جلوبل القناص محول في وضع محول ووضع إلى وضع محول كائن الفئة.

وضع محول كائن

في هذا الوضع، محول، محول استيعاب واختتم ذلك الطبقة المثال. في هذه الحالة، محول هو كيان مادي يدعو الكائن ملفوفة.

نمط محول الطبقة

في هذا الوضع، محول، محول الخاصة بتنفيذ فئة موروثة (الميراث عادة متعددة).

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

استخدام وضع محول

حياتنا غالبا ما تحتاج إلى تحويل استخدام مأخذ، مثل العديد من الهواتف النقالة دينا الآن فقط مقبس واحد، هذا المنفذ يمكن استخدامها مباشرة لتوجيه الاتهام والاستماع إلى الموسيقى. ولكن الافتراض هو محول جاك وشاحن الجهاز وسماعات الرأس التي نستخدمها.

العديد من الهواتف المحمولة حاليا في السوق هي من النوع C جاك أو البرق نموذج: ولكن استخدمنا نموذج الرأس هو 2.5mm و 3.5mm اجهات دائرية.

لذلك، عندما نريد الخاصة سماعة واجهة 3.5mm إدراج دائري البرق أو واجهة النوع C، تحتاج إلى تحويل.

وبالمثل، في نظام البرمجيات، وغالبا ما تريد بعض "كائن موجود" في البيئة الجديدة، والمتطلبات البيئية الجديدة واجهة الآن الكائن لا يمكن أن يكون راضيا. كما تشبه السيناريوهات التالية:

1، ونظام يتطلب استخدام فئة القائمة، ومثل واجهة لا يلبي احتياجات النظام.

2، وتريد أن إنشاء فئة قابلة لإعادة الاستخدام لبعض الفئات ليست أكثر من علاقة بين بعضها البعض، بما في ذلك بعض التي قد تعمل معا في المستقبل إدخال الصف، هذه المصادر ليس بالضرورة نفس النوع من واجهة.

3، من خلال تحويل واجهة، فئة واحدة في النظام فئة أخرى. (مثل النمور والطيور، والآن أكثر من النمر، دون زيادة المطالب المادية للالمقبل، إضافة محول، الكائن شامل داخل نمر، وتحقيق اجهة الطاير.)

محول الوضع، يمكنك حل المشاكل المذكورة أعلاه.

تنفيذ وضع محول

هنا نستخدم السيناريو محاكاة وضع محول: استخدام نوع C-شاحن أندروز لدعم فقط البرق أبل شحن الهاتف واجهة (على افتراض الدعم المثالي).

المعروف، لدينا شاحن من نوع C، الهاتف البرق موصل آبل. أم البرق نوع-C، هو المعيار في القانون، أي واجهة موحدة. لذلك دعونا تحدد واجهات اثنين:

/ **

* البرق ميناء الشحن

* /

الواجهة العمومية LightningInterface {

chargeWithLightning الفراغ الجمهور؛

}

/ **

* TypeC اجهة شحن

* /

الواجهة العمومية TypeCInterface {

الجمهور الفراغ chargeWithTypeC.

}

بعد ذلك، نحدد هاتف أبل لدينا، وقال انه يعتمد فقط على استخدام البرق جاك الشحن:

الطبقة العامة IphoneX {

خاصة LightningInterface lightningInterface.

الجمهور IphoneX {

}

الجمهور IphoneX (LightningInterface lightningInterface) {

this.lightningInterface = lightningInterface.

}

تهمة باطلة العام {

System.out.println ( "البدء في بلدي IphoneX شحن الهاتف ...")؛

lightningInterface.chargeWithLightning.

System.out.println ( "نهاية لبلدي IphoneX تهمة الهاتف ...")؛

}

// اضع / جالبة

}

بعد ذلك ننظر في الكيفية التي ينبغي أن تحدد لدينا شاحن الروبوت:

/ **

* شاحن جهاز الروبوت

* /

الطبقة العامة AndroidCharger الأدوات TypeCInterface {

Override

الجمهور الفراغ chargeWithTypeC {

System.out.println ( "من النوع C باستخدام نموذج شاحن ...")؛

}

}

مع الروبوت وأبل شاحن للهاتف المحمول. المقبل، وسوف نحدد محول، والأمل أنه من خلال هذا المحول، نستطيع أن نحقق جهاز أبل شاحن للهاتف أندرويد لتوجيه الاتهام:

الطبقة العامة تنفذ محول LightningInterface {

typeCInterface TypeCInterface الخاص؛

محول الجمهور {

}

محول الجمهور (TypeCInterface typeCInterface) {

typeCInterface = typeCInterface.

}

Override

chargeWithLightning الفراغ الجمهور {

typeCInterface.chargeWithTypeC.

}

// اضع / جالبة

}

هذه الأدوات محول LightningInterface، ومزيج من TypeCInterface، عندما المكالمات الخارجية chargeWithLightning طريقة يدعو في الواقع طريقة typeCInterface.chargeWithTypeC.

مثل محول الطاقة، وقال انه يطبق مواصفات البرق، والمكونات البرق نفسها، ولكن التهمة الفعلية عندما يكون من خلال قوة من نوع C-أنه يلعب دور وسيط التحويل.

ثم نحدد زبون لتحقيق ما نريد وظيفة الشحن:

الطبقة العامة الرئيسية {

ساكنة العام باطلة الرئيسية (سلسلة وسائط) {

محول محول محول = جديد (جديد AndroidCharger)؛

IphoneX iphoneX = IphoneX جديدة.

iphoneX.setLightningInterface (محول)؛

iphoneX.charge.

}

}

الإخراج:

التي IphoneX إعطاء بلادي شاحن الهاتف الخليوي ...

استخدام نوع C-نماذج شاحن ...

IphoneX حد لبلادي شاحن الهاتف الخليوي ...

المثال أعلاه من خلال محول، ونحن نستخدم شاحن الروبوت من النوع C إلى دعم واجهة البرق فقط أبل الهاتف الشحن.

رمز أعلاه، هو مثال لوضع محول، في هذه الحالة، كان هناك ما مجموعه أربعة أدوار:

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

مزايا وعيوب

ميزة

وضع محول (وضع محول الكائن)، هو تحقيق مزيج متفوق من الأفكار المتكاملة. باستخدام وضع محول، يمكننا تحقيق أقصى قدر من إعادة استخدام الطبقات والتعليمات البرمجية الموجودة. لديه أساسا المزايا التالية:

  • الطبقة المستهدفة، وفئة من مجرب منفصلا لإعادة استخدام فئة فئة محول مجرب القائمة عن طريق إدخال واحد، دون تعديل التعليمات البرمجية الموجودة.

  • زيادة الشفافية وإعادة استخدام الطبقات، مغلفة في فئة مجرب تنفيذ الخرسانة، ل زبون الفئة غير شفافة، وتحسين إعادة استخدام ومجرب.

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

عيب

بطبيعة الحال، فإن نموذج محول ليست مثالية، الإفراط أو سيجلب بعض المشاكل. أوجه القصور هي كما يلي:

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

سيناريوهات الاستخدام

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

في إطار الربيع، بل هو الكثير من استخدام وضع محول، يمكن للقارئ أن فتح IDE الخاصة بهم، في محاولة الكلمة "محول" العالمية بحث بعد ذلك، سيكون هناك العديد من التطبيقات العملية.

عندما واجهتك مشكلة، وعندما تريد استخدام اندروز أبل شاحن الهاتف لتهمة مماثلة، يجب أن نفكر في وضع محول أوه!

[نهاية]

الصباح: ذكرت وسائل الاعلام الايطالية إرادة بايرن في أوروبا لشراء 165 مليون انتر ميلان للتوقيع بيبي باريرا سا +

190622 Wangjun كاي الانترنت لمعرفة أنفسهم يسقط مسطحا للاهتمام الروح

أدرك الناس الكتابة كيف الفنية؟

بيثون وC ++ مكرر مكرر، وتحول أكبر الفرق إلى أن تكون ......

المطور، ما هي المشكلة كنت حقا يهتمون؟ | AI PROCON 2019

تفكيك خوض الكثير، عناوين مثيرة للاهتمام، وراء الكتاب الأحمر الصغير الجينات الإنترنت شنغهاي

"TFBOYS" "مشاركة" 190622 لا تأكل الدهون تنتج تباين قوي، TFBOYS مخصصة للجماهير، "جوزيف الرنين"

2050 مدينة العالم "توقعات الطقس": لندن الصيف متوسط درجة الحرارة من 27 درجة كيف المدن الساخنة يمكن أن تكون في عام 2050

"TFBOYS" "مشاركة" وانغ يوان 190622 خطوة شجاعة إلى الأمام، وإمكانيات المستقبل حازمة الظهر

"عائلتي الرجل" تقييمات أول ثلاثية تسع سنوات متتالية لتحقيق تشن دونغ الأسرة الأصلية الرصاص الساخن

دعونا الصوت الأصلي! قدم ممن لهم رينو صوت مهرجان الموسيقى الأصلية مضاءة تشونغتشينغ ليلة

هواوي كونغ منغ هو نظام التشغيل للأشياء، الحديث تحلق بايت الضرب المتجر الرفوف، الكتابة JS محرك FFMPEG الكاتب | المهوسون العناوين