Latest web development tutorials

وضع تكرارية

وضع تكرارية (مكرر نمط) جافا وصافي بيئة البرمجة هو نمط تصميم شائع جدا. يستخدم هذا الوضع لعناصر الوصول التسلسلي من مجموعة من الكائنات، مجموعة من الكائنات لا تحتاج إلى معرفة التمثيل الأساسي.

نمط مكرر ينتمي الأنماط السلوكية.

مقدمة

القصد: توفير وسيلة للوصول إلى كائن في كل عنصر من عناصر البلمرة، ولكن لا داعي لفضح الداخلية للكائن.

أساسا لحل: طريقة مختلفة لاجتياز الكائن التكامل بأكمله.

متى تستخدم: عبور كائن البوليمر.

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

رمز مفتاح: تحديد واجهة: hasNext، المقبل.

أمثلة التطبيق: JAVA في مكرر.

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

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

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

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

تحقيق

سنقوم إنشاء واجهة السردمكرروطريقة التنقل إرجاع مكرر واجهةالحاويات.تنفذ الطبقة كيانالحاوياتفإن واجهة يكون مسؤولا عن تنفيذواجهة مكرر.

IteratorPatternDemo، واستخدامالطبقات مظاهرة لدينا الطبقة كيان لطباعةNamesRepositoryNamesRepository المخزنة على جمعالأسماء.

نمط مكرر UML الرسم البياني

خطوة 1

إنشاء واجهة.

Iterator.java

الواجهة العمومية مكرر {
   hasNext منطقية العامة ()؛
   كائن العام المقبل ()؛
}

Container.java

الواجهة العمومية الحاويات {
   الجمهور مكرر getIterator ()؛
}

خطوة 2

تنفذ إنشاء فئة كيانالحاوياتواجهة. لقد أدركت هذه الفئةNameIteratorمكرر اجهة الطبقة الداخلية.

NameRepository.java

الطبقة العامة NameRepository تنفذ الحاويات {
   أسماء سلسلة العامة [] = { "روبرت"، "جون"، "جولي"، "لورا"}؛

   Override
   الجمهور مكرر getIterator () {
      العودة NameIterator الجديدة ()؛
   }

   NameIterator الدرجة الخاصة بتنفيذ مكرر {

      مؤشر كثافة العمليات.

      Override
      hasNext منطقية العامة () {
         إذا (مؤشر <names.length) {
            العودة الحقيقية.
         }
         عودة كاذبة.
      }

      Override
      كائن العام المقبل () {
         إذا (this.hasNext ()) {
            عودة أسماء [مؤشر ++].
         }
         العودة فارغة؛
      }		
   }
}

خطوة 3

استخدامNameRepositoryللحصول على التكرارات، وطباعة الأسماء.

IteratorPatternDemo.java

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

      ل(مكرر ايتر = namesRepository.getIterator ()؛ iter.hasNext ()؛) {
         اسم سلسلة = (سلسلة) iter.next ()؛
         System.out.println ( "الاسم:" + اسم)؛
      } 	
   }
}

خطوة 4

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

الاسم: روبرت
الاسم: جون
الاسم: جولي
الاسم: لورا