تصف هذه المقالة عملية قائمة الوصول إلى وضع قائمة الوصول بناءً على وضع Iterator في Java. شاركه للرجوع إليه ، على النحو التالي:
تعريف نمط
يوفر وضع ITerator مخططًا للوصول إلى العناصر الفردية في كائن جمع بالتسلسل دون تعريض تمثيله الداخلي.
أمثلة على الوضع الثاني
1 تحليل نمط
نحن نقترض حالة قائمة الزوار لتوضيح هذا النمط.
2 وضع التكرار مخطط فئة ثابتة
3 أمثلة رمز
3.1 واجهة معلومات الموظفين - Iperson
package com.demo.person ؛/** * معلومات الموظفين * * Author * */واجهة عامة Iperson {/** * الحصول على معلومات الموظفين * * return */سلسلة عامة getPersonInfo () ؛}3.2 تنفيذ معلومات الموظفين - الشخص
package com.demo.person ؛/** * فئة تنفيذ محددة من الشخص * * Author * */Public Class Profiremes iperson {// name private string name ؛ // العمر الخاص // الجنس (1: ذكر 0: أنثى) جنسية خاصة ؛ / ** * طريقة إعداد طريقة إعداد السمة * * param اسم * param age * param sex */ public person (اسم السلسلة ، int age ، int sex) {this.name = name ؛ this.age = العمر ؛ this.Sex = الجنس ؛ } / ** * الحصول على معلومات الموظفين * * return * / السلسلة العامة getPersonInfo () {return "name:" + this.name + " - العمر:" + this.age + " - الجنس:" + (this.sex == 1؟ "male": (this.sex == 0؟ }}3.3 واجهة جمع الموظفين - IpersonList
Package com.demo.person ؛ import com.demo.iterator.iterator ؛/** * واجهة الموظفين * * Author * */واجهة عامة IpersonList {/** * احصل على تخزين داخلي لمحتوى معلومات الموظفين * * regurn */public iperson [] getPersonList () ؛ / ** * iterator * * return */ public Iterator ITerator () ؛}3.4 قائمة الشخصيات
package com.demo.person ؛ import java.util.random ؛ import com.demo.iterator.arrpersoniterator ؛ import com.demo.iterator.iterator ؛/** * personlist information * * Author * */public class personlist تنفذ قائمة معلومات مستخدم {// store قائمة معلومات المستخدم النهائية الخاصة [] // construct طريقة تهيئة معلومات الموظفين profilelist () {عشوائي عشوائي = جديد عشوائي () ؛ // إنشاء معلومات الموظفين لـ (int i = 0 ؛ i <10 ؛ i ++) {iperson person = new شخص ("person"+i ، Random.NextInt (30) ، عشوائي .nextint (2)) ؛ قائمة [i] = شخص ؛ // this.list.add (شخص) ؛ }} / ** * احصل على محتوى معلومات موظفي التخزين الداخلي * * @RETURN * / public iperson [] getPersonList () {return list ؛ } / ** * iterator * * regurn * / public Iterator iterator () {return new ArrPersonIterator (this.list) ؛ }}3.5 واجهة Iterator - ITerator
حزمة com.demo.iterator ؛/** * واجهة ITerator * * Author * */واجهة عامة iterator {// تحديد ما إذا كانت العقدة التالية تحتوي على hasnext () ؛ // احصل على الكائن العام العقدة التالي NEXT () ؛ // حذف الكائن العام الكائن remove () ؛}3.6 تنفيذ ITERATAR - ARRPERSELITERATOR
package com.demo.iterator ؛ import com.demo.person.iperson ؛/** * Array Iterator Applearation * * author * */public class arrpersoniterator تنفذ iterator {// سمات خاصة store store قائمة الكائنات الكائنات الخاصة بـ iperson final [] // القيمة الأولية لمعلومات موقع التخزين هي -1 Index int = -1 ؛ / ** * طريقة المنشأة تمرر كائن قائمة الموظفين في * * param personlist */ public arrpersoniterator (iperson [] personlist) {this.personlist = personlist ؛ } // تحديد ما إذا كانت العقدة التالية تحتوي على boolean public hasnext () {return (this.personlist == null؟ false: (index <this.personlist.length - 1)) ؛ } // احصل على الكائن العام NED NODE الكائن العام next () {if (this.personList! = null && (index <this.personlist.length - 1)) {// الحصول على معلومات الموظفين في كائن قائمة الموظفين إلى هذا. } إرجاع فارغ ؛ }. this.personlist [index] = null ؛ عودة الشخص } إرجاع فارغ ؛ }}3.7 دع المكره يجتاز كائن المجموعة - العميل
package com.demo ؛ import com.demo.iterator.iterator ؛ import com.demo.person.iperson ؛ import com.demo.person.ipersonlist ؛ import com.demo.person.personlist ؛ import com.demo.person.person. = New Personlist () ؛ System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- personList.iterator(); // Loop iterator traverses كل عنصر وإخراج معلومات الموظفين (iterator.hasnext ()) }}4 نتائج التشغيل
---- استخدم Iterator لإخراج معلومات الموظفين ...
الاسم: الموظفين 0 - العمر: 28 - الجنس: الإناث الاسم: الموظفين 1 - العمر: 25 - الجنس: الاسم الإناث: الموظفين 2 - العمر: 23 - الجنس: الإناث الاسم: الموظفين 3 - العمر: 18 - الجنس: الاسم الإناث: الموظفين 4 - العمر: 27 - الجنس: اسم الإناث: شؤون الموظفين 5 - 28 - الجنس: ذكر: العمر: 16 - الجنس: ذكر الاسم: موظفين 9 - العمر: 12 - الجنس: أنثى
---- استخدم Iterator لإخراج نهاية معلومات الموظفين ...
ثلاثة مبادئ لتصميم هذا النمط
1 مبدأ "مفتوح وإغلاق"
2 مبدأ المسؤولية الفردية
أربع مناسبات الاستخدام
1 Access محتويات كائن جمع دون فضح تمثيله الداخلي.
2 يدعم طرق اجتياز متعددة لكائنات التجميع.
يوفر 3 واجهة موحدة لاجتياز هياكل كائن التجميع المختلفة.
خمسة مخطط فئة ثابتة وضع Iterator
لمزيد من المحتوى المتعلق بـ Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "مقدمة والبرمجة التعليمية المتقدمة حول البرمجة الموجهة إلى Java" ، و "البرنامج التعليمي حول بنية بيانات Java" و "خوارزمية" و "ملخص مهارات تشغيل Java" ، و "ملخص مهارات تشغيل Java" و "ملخصات Java Cate".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.