Latest web development tutorials

نمط الدولة

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

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

مقدمة

القصد: يسمح كائن لتغيير يتم تغيير سلوكها في الحالة الداخلية، يظهر الكائن لتعديل فئتها.

أساسا لحل: يعتمد سلوك الكائن على حالته (سمات)، ويمكنك تغييره وفقا لتغير سلوكيات حالته.

متى تستخدم: كود يحتوي على عدد كبير من الكائنات المتعلقة بوضع العبارات الشرطية.

كيفية إصلاح: وضع فئات معينة من المجرد.

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

أمثلة التطبيق: 1، ولعب لاعب كرة السلة يمكن أن يكون حالة طبيعية، وليس دولة دولة وغير طبيعية عادية.2، المركيز يي الأجراس تسنغ، و'على مدار الساعة هو واجهة مجردة'، 'على مدار الساعة A' وغيرها من ولاية محددة، بيئة معينة "بيان تشونغ" (السياق).

المزايا: 1، بتغليف قواعد التحول.2، تعداد الحالات الممكنة قبل تحتاج الدولة التعداد لتحديد حالة الأنواع. 3، مع كل سلوكيات الدولة إلى فئة، ويمكنك بسهولة إضافة دولة جديدة، وتحتاج فقط إلى تغيير حالة كائن يمكن تغيير سلوك الكائنات. 4، والسماح للدولة منطق الدولة انتقال الكائن في واحد، وليس كتلة واحدة ضخمة من البيانات الشرطية. 5، ويسمح كائنات متعددة تشترك في بيئة الكائن الدولة، مما يقلل من عدد الأجسام في النظام.

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

سيناريوهات الاستخدام: 1، مع تغيير السلوك الدولة وتغيير المشهد.2، فرع مشروط بيان بديلا.

ملاحظة: عند استخدام سلوك الدولة مقيدة وضع الدولة، والدولة ليست أكثر من خمس سنوات.

تحقيق

سنقوم إنشاء واجهة وضع الكيانوالدولةالطبقية تطبيق واجهةالدولة.السياق هي فئة مع دولة معينة.

StatePatternDemo،ونحن لشرح استخدام طبقة والمكانة الأجسامالسياقالسياق لإثبات تغيير السلوك في حالة التغيير.

الدولة نمط UML الرسم البياني

خطوة 1

إنشاء واجهة.

State.java

public interface State {
   public void doAction(Context context);
}

خطوة 2

إنشاء فئة الجهة التي تطبق الواجهة.

StartState.java

الطبقة العامة StartState تنفذ الدولة {

   doAction الفراغ الجمهور (السياق السياق) {
      System.out.println ( "لاعب هو في حالة بداية")؛
      context.setState (هذا)؛	
   }

   toString سلسلة العامة () {
      العودة "بدء الدولة".
   }
}

StopState.java

public class StopState implements State {

   public void doAction(Context context) {
      System.out.println("Player is in stop state");
      context.setState(this);	
   }

   public String toString(){
      return "Stop State";
   }
}

خطوة 3

إنشاء فئةالسياق.

Context.java

فئة العمومي السياق {
   الدولة دولة خاصة.

   السياق العام () {
      الدولة = فارغة؛
   }

   setState الفراغ الجمهور (ولاية الدولة) {
      this.state = الدولة.		
   }

   getState الدولة الجمهور () {
      عودة الدولة.
   }
}

خطوة 4

استخدامالسياقلرؤية السلوك عند تغيير الدولة التغييراتالدولة.

StatePatternDemo.java

الطبقة العامة StatePatternDemo {
   (وسائط سلسلة []) العامة ساكنة باطلة الرئيسية {
      السياق السياق = السياق الجديد ()؛

      StartState startState = StartState الجديدة ()؛
      startState.doAction (السياق).

      System.out.println (context.getState () toString ())؛

      StopState stopState = StopState الجديدة ()؛
      stopState.doAction (السياق).

      System.out.println (context.getState () toString ())؛
   }
}

خطوة 5

تحقق من الانتاج.

لاعب في حالة بدء
بدء الدولة
لاعب في حالة توقف
توقف الدولة