التعريف: يمكن تغيير سلوك فئة أو خوارزمية في وقت التشغيل. في وضع السياسة ، نقوم بإنشاء كائن يمثل سياسات مختلفة وكائن سياق يتغير سلوكه مع تغير كائن السياسة. يغير كائن السياسة خوارزمية التنفيذ لكائن السياق.
سمات:
1. يمكن تبديل الخوارزمية بحرية.
2. تجنب استخدام شروط متعددة للحكم.
3. قابلية التوسع الجيدة.
التطبيقات في تطوير مستوى المؤسسة والأطر المشتركة: java.servlet.http.httpservlet method
مثال: سلوك التشغيل على رقمين.
Demo Class Public {public static void main (string [] args) {strategy1 = new strategyadd () ؛ استراتيجية الاستراتيجية 2 = استراتيجية جديدة () ؛ سياق السياق 1 = سياق جديد (استراتيجية 1) ؛ context1.execute (10 ، 5) ؛ context1 = سياق جديد (الاستراتيجية 2) ؛ context1.execute (10 ، 5) ؛ }} استراتيجية واجهة {public void dooperation (int num1 ، int num2) ؛} تنفذ استراتيجية الفئة الإستراتيجية {public void dooperation (int num1 ، int num2) {system.out.println ("تنفيذ الإضافة") ؛ System.out.println (num1+"+"+num2+"="+(num1+num2)) ؛ }} class strategysub تنفذ الإستراتيجية {public void dooperation (int num1 ، int num2) {system.out.println ("تنفيذ الطرح") ؛ System.out.println (num1+"-"+num2+"="+(num1-num2)) ؛ }} strategymul تنفذ الإستراتيجية {public void dooperation (int num1 ، int num2) {system.out.println ("تنفيذ الضرب") ؛ System.out.println (num1+"*"+num2+"="+(num1*num2)) ؛ }} class strategydiv تنفذ الإستراتيجية {public void dooperation (int num1 ، int num2) {system.out.println ("execute division") ؛ System.out.println (num1+"/"+num2+"="+(num1/num2)) ؛ }} سياق الفئة {استراتيجية الاستراتيجية الخاصة ؛ السياق العام (استراتيجية الاستراتيجية) {this.strategy = الاستراتيجية ؛ } تنفيذ الفراغ العام (int num1 ، int num2) {strategy.dooperation (num1 ، num2) ؛ }}يؤكد نموذج السياسة على تغييرات وقت التشغيل. ربما في الكود أعلاه ، لا تنعكس تغييرات وقت التشغيل هذه بشكل جيد. يمكننا أن نفترض سيناريوًا عمليًا ، أي عندما يتم تمرير معلمة كائن إلى طريقة ، لنفترض أنه يتعين علينا اختيار طرق مختلفة وفقًا للمعلمات المختلفة ، سننظر في إذا كان Else للحكم ، بينما يصنف نموذج السياسة هذه إذا كانت كل فئة ، ومن ثم يأتي الكائن ويتصل بشكل مباشر بأسلوب واجهة السياسة. يتم الحكم على الفئة المحددة من معلمات الكائن التي تنتمي إليها من قبل JVM. لا نحتاج إلى فهم أنواع سمات معلمة الكائن ، وما إلى ذلك. هذا لا يبسط أعمالنا التنمية فحسب ، بل يتمتع أيضًا بقدرة أفضل على التوسع مقارنة بـ IF-ELSE.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.