المناقشة الصحيحة:
يقوم وضع الأوامر بتغليف طلب أو عملية في كائن. يستخدم نظام وقت تشغيل وضع الأوامر طلبات مختلفة لتعليم العميل أو طلبات قائمة الانتظار أو سجلات طلب السجلات ، ويمكنها توفير وظائف إلغاء الأوامر واستردادها.
شائع:
في الواقع من السهل الفهم. وضع الأوامر ، ما تهتم به هو الأوامر (أو العمليات). دعونا نعطي مثالا. في الشركة ، تشبه العملية بأكملها النظام. أصدر رئيسه أمرًا ، وتلقى زعيم المستوى المتوسط الأمر ثم قام بتعيينه للموظف المحدد المسؤول. العملية برمتها واضحة. هناك شرط ، كيفية إصلاح هذه العملية وتشكيل نظام. نحن فقط بحاجة إلى فهم النقطة الرئيسية: النظام. استخراجها وسيتم حل كل شيء آخر. استخراج الأوامر وتغليفها في كائن مستقل لتحقيق الفصل. أما بالنسبة للآخرين ، يمكن توسيعها بسهولة ، ما إذا كان الرئيس التنفيذي أو إدارة الموارد البشرية أو والدك. بغض النظر عما إذا كان المنفذ لهذا الأمر هو Zhang San أو Turtle. إن ظهور هذا النموذج هو في الواقع "استيعاب التناقض الرئيسي". المزيد من الأمثلة ، مثل الكتاب الآخرين الذين استشهدوا "ما هو الفرق بين الذهاب إلى جانب الطريق والذهاب إلى مطعم الشواء لتناول الشواء" أو "The Monkey King يثير ضجة كبيرة حول إمبراطور اليشم في القصر السماوي لالتقاط القرود مع Taibai Venus".
يعد وضع أوامر Java في الأساس تغليف للأوامر ، والذي يفصل بين مسؤولية إصدار الأوامر ويفوضها إلى كائنات مختلفة. بعبارات الرجل العادي ، أنا الرئيس ، لذلك أرسل طلبًا. أما بالنسبة لمن يرسل هذا الأمر إلى من ينفذه ، الأمر متروك لي. لا أرسل أموالًا لتوظيف شخص ما لإحداث مشكلة لنفسي. أنت الموظف المسؤول عن الأشياء ، وواجبك هو القيام بالمهام المعينة من قبل رؤسائك. كن على الأرض ، لا أعرف الكثير ، لا ثرثرة ، لا تسأل الكثير.
ينجز:
لنلقي نظرة على مخطط الفصل أولاً:
بناءً على هذا ، ننظر إلى رمز العينة:
الواجهة العامة icommand {void execute () ؛ } concretecmommand paractions icommand {استقبال المتلقي الخاص ؛ concretecommand (جهاز الاستقبال المتلقي) {this.receiver = جهاز الاستقبال ؛ } Override public void execute () {this.receiver.action () ؛ }} جهاز استقبال الفئة العامة {public void Action () {system.out.println ("المتلقي تفعل شيئًا") ؛ }} الفئة العامة invoker {private icommand command ؛ public Invoker (أمر icommand) {this.command = command ؛ } public void invoke () {this.command.execute () ؛ }} اختبار الفئة العامة {public static void main (string [] args) {receiver receiver = new receiver () ؛ // command exector icommand الحقيقي = concretecommand جديد (جهاز الاستقبال) ؛ // الأمر المستخدم للعزل invoker invoker = new invoker (command) ؛ // caller invoker.invoke () ؛ }}
ميزة:
عيب:
قد يكون هناك الكثير من فئات الأوامر المحددة.