تصف هذه المقالة استخدام وضع الجسر لتنفيذ وظائف التبديل والضوء. شاركه للرجوع إليه ، على النحو التالي:
1. تعريف نمط
وضع الجسر ، المعروف أيضًا باسم وضع الجسر ، في أنظمة البرمجيات ، بسبب منطقه ، هناك بعدين أو أكثر من التغييرات. كيفية التعامل مع مثل هذه التغييرات متعددة الأبعاد ، يسمح Bridge Mode لنظام البرمجيات بالتغيير بسهولة في اتجاهات متعددة دون تقديم تعقيد إضافي.
الكلمات الرئيسية الثلاثة لوضع الجسر هي: التجريد والتنفيذ والفصل.
2. أمثلة على النموذج
1. طريقة تحليل وضع السد
نحن نقترض إضاءة الضوء لتوضيح هذا الوضع.
بدون الميراث ، استخدم طريقة تركيبة الكائن لتحويل العلاقة القوية بين المفاتيح والأضواء إلى علاقات ضعيفة.
2 نموذج الطبقة الثابتة وضع الجسر
3 أمثلة رمز
3.1 إنشاء واجهة إضاءة كهربائية
package com.demo.bridge.lights ؛/** * واجهة الضوء * * Author * */واجهة عامة ilight {// قم بتشغيل public void electricconnected () ؛ // Lighting Public Void Light () ؛ // التيار قبالة الفراغ العام الكهربائي () ؛}3.2 إنشاء مفاتيح عامة
package com.demo.bridge.switchs ؛ استيراد com.demo.bridge.lights.ilight ؛/** * تبديل فئة المستوى الأعلى * * author * */public class baseswitch {// استخدم مجموعة ilight على سمات خاصة داخلية ، وهذا عبارة عن مصباح جسر محمي ؛ // بناء طريقة حقن نوع الضوء الخارجي في قواعد عامة (Ilight Light) {this.light = Light ؛ } / *** طريقة الإضاءة* / public final void makelight () {// قم بتشغيل المفتاح وقم بتشغيل this.light.electricconnected () ؛ // lighting this.light.light () ؛ // قم بإيقاف تشغيل المفتاح لإيقاف تشغيل this.light.light.electricclosed () ؛ }}3.3 قم بإنشاء مفتاح بعيد
package com.demo.bridge.switchs.sub ؛ استيراد com.demo.bridge.lights.ilight ؛ استيراد com.demo.bridge.switchs.baseswitch ؛/** * مفتاح التحكم عن بعد يرث وظيفة تمديد baseswitch * * *///public class remoteControlStist يمتد baseswitch { سوبر (الضوء) ؛ } / *** استخدم مفتاح التحكم عن بُعد للتحكم في الضوء على** param corpatorColor* Light Color* / Public Final void makeremotelight (int operAcolor) {// قم بتشغيل المفتاح لتشغيل this.light.lectricconnection () ؛ // light this.light.light () ؛ سلسلة السلسلة = "" ؛ Switch (OperColor) {case 1: color = "Warm Color" ؛ استراحة؛ الحالة 2: اللون = "الأزرق" ؛ استراحة؛ الحالة 3: اللون = "الأحمر" ؛ استراحة؛ الافتراضي: color = "White" ؛ استراحة؛ } system.out.println ("... الآن هو" + color + "!") ؛ // switch switch لإيقاف تشغيل this.light.electclected () ؛ }}3.4 تنفيذ المصباح المتوهج
package com.demo.bridge.lights.impl ؛ import com.demo.bridge.lights.ilight ؛/** * تطبيق المصباح المتوهج * * @Author * */public class class incidescentlight أدوات Ilight {// الحالي خارج الفراغ العام الكهربائي () {system.out.println ("مصباح المدفوق هو إيقاف ...") ؛ }. } // lighting public void light () {system.out.println ("الإضاءة المتوهجة!") ؛ }}3.5 تنفيذ المصباح الكريستالي
package com.demo.bridge.lights.impl ؛ استيراد com.demo.bridge.lights.ilight ؛/** * تطبيقات crystallight * Author * */الطبقة العامة crystallight الأدوات Ilight {// الحالية خارج public void electrclosed () }. } // lighting public void light () {system.out.println ("Crystal Lamp Lighting!") ؛ }}3.6 التحكم العام في المفتاح المتوهج ، مصباح بلوري التحكم عن بُعد ، مصباح بلوري
package com.demo ؛ import com.demo.bridge.lights.ilight ؛ استيراد com.demo.bridge.lights.impl.crystallight ؛ استيراد com.demo.bridge.lights.impl.incandesction ؛ Author * */clientforbridge public clientForBridge {/** * param args */public static void main (string [] args) {// incandesctinlight مثيل Ilight conductight = new Sintescentlight () ؛ // crystal lamp مثيل Ilight crystallight = جديد crystallight () ؛ // switch system.out.println ("- Switch--") ؛ baseswitch switch1 = new baseswitch (المتوهجة) ؛ switch1.makelight () ؛ System.out.println ("/n-- مفتاح التحكم عن بعد-") ؛ // مفتاح التحكم عن بُعد remotecontrolswitch = جديد remoteControlSwitch (crystallight) ؛ RemoteControlSwitch.MakerEmotelight (1) ؛ }}نتائج التشغيل:
- التبديل العام-
تم تشغيل المصباح المتوهج ...
إضاءة مصباح المتوهجة!
تم إيقاف المصباح المتوهج ...
- مفتاح التحكم عن بعد-
تم تشغيل المصباح البلوري ...
إضاءة المصباح الكريستال!
... إنه دافئ الآن!
تم إيقاف المصباح البلوري ...
3.7 مصباح بلوري التحكم العام في المفتاح ، التحكم عن بُعد التحكم في مفتاح التحكم المتوهج
package com.demo ؛ import com.demo.bridge.lights.ilight ؛ استيراد com.demo.bridge.lights.impl.crystallight ؛ استيراد com.demo.bridge.lights.impl.incandesction ؛ Author * */clientforbridge public clientForBridge {/** * param args */public static void main (string [] args) {// incandesctinlight example Ilight conductionlight = new Sintescentlight () ؛ // crystal lamp مثال ilight crystallight = new crystallight () ؛ // switch system.out.println ("- Switch--") ؛ switchwitch switch1 = new baseswitch (crystallight) ؛ switch1.makelight () ؛ System.out.println ("/n-- مفتاح التحكم عن بعد-") ؛ // مفتاح التحكم عن بُعد remotecontrolswitch = new remoteControlSwitch (المتوهجة) ؛ RemoteControlSwitch.MakerEmotelight (1) ؛ }}نتائج التشغيل
- التبديل العام-
تم تشغيل المصباح البلوري ...
إضاءة المصباح الكريستال!
تم إيقاف المصباح البلوري ...
- مفتاح التحكم عن بعد-
تم تشغيل المصباح المتوهج ...
إضاءة مصباح المتوهجة!
... إنه دافئ الآن!
تم إيقاف المصباح المتوهج ...
3. مبادئ التصميم
1 حاول استخدام تجميع الكائنات للجمعيات الضعيفة وتجنب استخدام ارتباطات الميراث القوية.
2 التجريد والتنفيذ فصل.
4. استخدام المناسبات
1 لا تريد علاقة ربط ثابت بين الطبقة التجريدية وجزء التنفيذ
يجب توسيع أجزاء التجريد والتنفيذ من فئتين من خلال طريقة إسكات.
3 لا يؤثر تعديل جزء التنفيذ التجريدي على العميل ، أي أنه لا يجب إعادة ترجمة رمز العميل.
5. رسم فئة ثابتة وضع الجسر
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.