Latest web development tutorials
×

设计模式 หลักสูตร

รูปแบบการออกแบบ รู้เบื้องต้นเกี่ยวกับรูปแบบการออกแบบ โหมดโรงงาน แบบโรงงานย่อ รูปแบบเดี่ยว รุ่นสร้าง รุ่นต้นแบบ อะแดปเตอร์รุ่น สะพานโหมด รูปแบบตัวกรอง โหมดการทำงานร่วมกัน มัณฑนากร รูปแบบซุ้ม ฟลายเวท โหมดพร็อกซี่ ห่วงโซ่ของรูปแบบความรับผิดชอบ โหมดคำสั่ง รูปแบบล่าม โหมดซ้ำแล้วซ้ำอีก รูปแบบที่เป็นสื่อกลาง รูปแบบของที่ระลึก รูปแบบการสังเกตการณ์ รูปแบบของรัฐ null Object Model โหมดกลยุทธ์ โหมดแม่แบบ รูปแบบของผู้เข้าชม MVC โหมด โหมดตัวแทน โหมดนิติบุคคลองค์ประกอบ รูปแบบการเข้าถึงข้อมูลของวัตถุ รูปแบบการควบคุมด้านหน้า intercepting รูปแบบตัวกรอง รูปแบบการบริการผู้แทนจำหน่าย วัตถุ Transfer รุ่น

设计模式其他

ทรัพยากรโหมดออกแบบ

โหมดซ้ำแล้วซ้ำอีก

โหมดซ้ำ (Iterator แบบ) สภาพแวดล้อม Java NET และการเขียนโปรแกรมเป็นรูปแบบการออกแบบที่พบบ่อยมาก โหมดนี้จะใช้สำหรับการเข้าถึงลำดับองค์ประกอบของคอลเลกชันของวัตถุคอลเลกชันของวัตถุที่ไม่จำเป็นต้องรู้ว่าการแสดงต้นแบบ

รูปแบบ Iterator เป็นรูปแบบพฤติกรรม

การแนะนำ

เจตนา: เป็นวิธีการเข้าถึงวัตถุในองค์ประกอบของพอลิเมอแต่ละ แต่ไม่จำเป็นต้องเปิดเผยการตกแต่งภายในของวัตถุ

เป็นหลักในการแก้ปัญหา: เป็นวิธีที่แตกต่างกันในการสำรวจวัตถุบูรณาการทั้งหมด

เมื่อใช้: ภายในวัตถุพอลิเมอ

วิธีการแก้ไข: เดินระหว่างองค์ประกอบของความรับผิดชอบที่จะ iterators แทนของวัตถุรวม

รหัสสำคัญ: กำหนดอินเตอร์เฟซ: hasNext ต่อไป

ตัวอย่างการใช้งาน: JAVA ในการทำซ้ำโดย

ข้อดี: 1 ซึ่งสนับสนุนวิธีที่แตกต่างในการสำรวจวัตถุรวม2, การลดความซับซ้อนพอลิเมอระดับการทำซ้ำโดย 3 ในพอลิเมอเดียวกันสามารถมีการสำรวจเส้นทางหลาย 4 ในโหมดซ้ำเพิ่มคลาสใหม่ของชั้น iterator พอลิเมอและใช้งานง่ายโดยไม่ต้องแก้ไขรหัสเดิม

ข้อเสีย: เนื่องจากการแยกการจัดเก็บอากรขา iterator รูปแบบข้อมูลและทราเวิร์เพิ่มชั้นเรียนที่รวบรวมใหม่จำเป็นต้องมีการเพิ่มขึ้นสอดคล้องกันในชั้นเรียน iterator ใหม่จำนวนชั้นคู่เพิ่มขึ้นซึ่งจะเป็นการเพิ่มความซับซ้อนของระบบที่มีขอบเขต

สถานการณ์การใช้งาน: 1, การเข้าถึงวัตถุเนื้อหาพอลิเมอได้โดยไม่ต้องเปิดเผยการแสดงภายในของมัน2 จำเป็นที่จะต้องให้ความหลากหลายของวิธีการข้ามผ่านวัตถุรวม 3 ภายในโครงสร้างที่แตกต่างกันรวมมีอินเตอร์เฟซแบบครบวงจร

หมายเหตุ: โหมดซ้ำจะถูกแยกออกสำรวจเส้นทางพฤติกรรมของคอลเลกชันของวัตถุนามธรรมคลาส iterator จะต้องรับผิดชอบเพื่อให้ทั้งสองสามารถทำได้โดยไม่ต้องสัมผัสกับโครงสร้างภายในของคอลเลกชัน แต่ยังปล่อยให้รหัสการเข้าถึงโปร่งใสภายนอกเพื่อเก็บรวบรวมข้อมูลภายใน

การสำนึก

เราจะสร้างอินเตอร์เฟซที่เล่าเรื่องIteratorและวิธีการนำส่งกลับ iteratorของอินเตอร์เฟซคอนเทนเนอร์ระดับเอนทิตีตู้คอนเทนเนอร์ใช้อินเตอร์เฟซจะเป็นผู้รับผิดชอบในการดำเนินการอินเตอร์เฟซ Iterator

IteratorPatternDemo เรียนสาธิตของเราใช้คลาสนิติบุคคลที่จะพิมพ์NamesRepositoryNamesRepositoryเก็บไว้เป็นคอลเลกชันชื่อ

รูปแบบ Iterator แผนภาพ UML

ขั้นตอนที่ 1

สร้างอินเตอร์เฟซ

Iterator.java

Iterator อินเตอร์เฟซที่สาธารณะ {
   hasNext ประชาชน boolean ();
   วัตถุประชาชนต่อไป ();
}

Container.java

ตู้คอนเทนเนอร์อินเตอร์เฟซที่สาธารณะ {
   ประชาชน Iterator getIterator ();
}

ขั้นตอนที่ 2

สร้างนิติบุคคลระดับคอนเทนเนอร์ใช้อินเตอร์เฟซชั้นนี้ได้ตระหนักถึงระดับภายในอินเตอร์เฟซNameIteratorIterator

NameRepository.java

เรียนสาธารณะ NameRepository ดำเนินคอนเทนเนอร์ {
   ชื่อสาธารณะ String [] = { "โรเบิร์ต", "จอห์น", "จูลี่", "Lora"};

   @Override
   ประชาชน Iterator getIterator () {
      กลับ NameIterator ใหม่ ();
   }

   NameIterator ระดับเอกชนดำเนิน Iterator {

      ดัชนี int;

      @Override
      hasNext บูลีนสาธารณะ () {
         ถ้า (ดัชนี <names.length) {
            กลับจริง;
         }
         กลับเท็จ;
      }

      @Override
      วัตถุประชาชนต่อไป () {
         ถ้า (this.hasNext ()) {
            ชื่อกลับ [ดัชนี ++];
         }
         กลับ NULL;
      }		
   }
}

ขั้นตอนที่ 3

ใช้NameRepositoryที่จะได้รับ iterators และพิมพ์ชื่อ

IteratorPatternDemo.java

เรียนสาธารณะ IteratorPatternDemo {
	
   ประชาชนเป็นโมฆะคง main (String args []) {
      NameRepository namesRepository = NameRepository ใหม่ ();

      สำหรับ (Iterator ITER = namesRepository.getIterator (); iter.hasNext ();) {
         ชื่อ String = (String) iter.next ();
         System.out.println ( "ชื่อ:" + ชื่อ);
      } 	
   }
}

ขั้นตอนที่ 4

ตรวจสอบการส่งออก

ชื่อ: โรเบิร์ต
ชื่อ: จอห์น
ชื่อ: จูลี่
ชื่อ: Lora