وضع الأوامر هو النمط الأكثر إرباكًا. في البرمجة الفعلية الخاصة بك. وضع الأوامر ليس في الواقع نموذجًا محددًا للغاية ، وهذا هو بالضبط المرونة التي تجعل الناس يشعرون بالارتباك قليلاً.
تعريف الأوامر
يتم استهداف العديد من رموز وضع الأوامر في الواجهة الرسومية.
تغليف هذه الأوامر في فئة ، ثم يعمل المستخدم (المتصل) على هذا الفئة. .
من الواضح أن الاستفادة من ذلك هو أنه يتوافق مع خصائص التغليف ويقلل من أمر الاقتران.
من وضع الأوامر ، وجدت أيضًا أن "مشكلة مشتركة" لوضع التصميم: يبدو أنني أرغب في تعقيد المشكلات البسيطة ، وأحب إضافة أطراف ثالثة إلى فصول مختلفة. إعادة استخدام الكود.
كيفية استخدام وضع الأوامر
تعتبر رموز وضع الأوامر المحددة مختلفة ، لأن هناك طرقًا مختلفة لتغليف الأوامر والأنظمة المختلفة. المثال التالي هو تغليف أمر في قائمة التجميع.
يتطلب وضع الأوامر النموذجي واجهة. هناك طريقة موحدة في الواجهة ، وهي "أوامر/طلبات في كائنات":
نسخة الكود كما يلي:
أمر الواجهة العامة {
Public Abstract void execute () ؛
}
رموز الأوامر/الطلب المحددة هي تنفيذ أمر الواجهة ، وهناك ثلاثة أوامر محددة أدناه:
نسخة الكود كما يلي:
مهندس الفئة العامة ينفذ الأمر {
void public execute () {
// Do Assiceer's أمر
}
}
مبرمج الطبقة العامة ينفذ الأمر {
void public execute () {
// Do Programmer
}
}
سياسي الطبقة العامة ينفذ القيادة {
void public execute () {
// قيادة السياسي
}
}
كالعادة ، يمكننا استدعاء هذه الأوامر الثلاثة مباشرة ، ولكن باستخدام وضع الأوامر ، يتعين علينا تغليفها ورميها في قائمة المربع الأسود:
نسخة الكود كما يلي:
منتج الفئة العامة {
القائمة الثابتة العامة ProduceRequests () {
قائمة قائمة الانتظار = ArrayList () جديد ؛
Queue.Add (New ModernEngineer ()) ؛
Queue.Add (سياسي جديد ()) ؛
Queue.Add (New Programmer ()) ؛
قائمة الانتظار ؛
}
}
بعد أن أدخلت هذه الأوامر الثلاثة ، فقدت خصائصها.
نسخة الكود كما يلي:
فئة عامة testCommand {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
قائمة قائمة الانتظار = producer.producerequests () ؛
لـ (iterator it = queue.iterator () ؛ it.hasnext () ؛)
// أخرج الميزات الوسطية وغيرها من الميزات ، ولا يمكنك تحديدها.
// هم على الأقل "ابن" أمر الواجهة.
((command) it.next ()). execute () ؛
}
}
يمكن ملاحظة أن المتصل يتعامل بشكل أساسي مع الواجهة ولا يتفاعل مع التنفيذ المحدد. ليست حاجة لتعديل الكود في اختبار المتصل.
بعد فهم المبدأ الأساسي للرمز أعلاه ، يجب أن يكون لدى الجميع أساليبهم الخاصة ، خاصة في كيفية فصل المتصل والأوامر المحددة ، هناك العديد من أساليب التنفيذ. . هذا النهج هو فقط للمظاهرة.
سبب وجيه لاستخدام وضع الأوامر هو أيضًا أنه يمكنه تنفيذ وظائف التراجع ، ويمكن لكل أمر محدد أن يتذكر الإجراء الذي أجراه فقط واستعادته إذا لزم الأمر.
يستخدم وضع الأوامر على نطاق واسع في تصميم الواجهة. أوامر القائمة في Java Swing Mode.