Latest web development tutorials
×

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

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

设计模式其他

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

รูปแบบของผู้เข้าชม

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

การแนะนำ

เจตนา: โครงสร้างหลักของข้อมูลและการแยกการจัดการ

เป็นหลักในการแก้ปัญหา: โครงสร้างข้อมูลที่มีเสถียรภาพและปัญหาการมีเพศสัมพันธ์ในการดำเนินงานตัวแปร

เมื่อใช้: จำเป็นต้องมีโครงสร้างของวัตถุเป้าหมายในการดำเนินการที่แตกต่างกันและไม่มีส่วนเกี่ยวข้องจำนวนมาก แต่การกระทำเหล่านี้จะต้องหลีกเลี่ยง "มลพิษ" ของชั้นของวัตถุเหล่านี้ใช้งานของผู้เข้าชมแพคเกจเหล่านี้เพื่อการเรียน

วิธีการแก้ไข: ชั้นจะเข้าถึงภายในบวกการรับนักท่องเที่ยวชาวต่างชาติที่จะให้อินเตอร์เฟซ

รหัสสำคัญ: ชั้นฐานข้อมูลซึ่งมีวิธีการที่จะยอมรับผู้เข้าชมตัวเองมีการอ้างอิงถึงผู้เข้าชมที่เข้ามา

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

ข้อดี: 1 ซึ่งสอดคล้องกับหลักการความรับผิดชอบเดียว2 การขยายขนาดที่ดีเยี่ยม 3 ความยืดหยุ่น

ข้อเสีย: 1, องค์ประกอบเฉพาะของผู้เข้าชมประกาศรายละเอียดของการละเมิดหลักการของ Demeter ที่2, องค์ประกอบเฉพาะของการเปลี่ยนแปลงที่ยากมากขึ้น 3 ในการละเมิดหลักการพึ่งพาผกผันพึ่งพาการเรียนเฉพาะที่ไม่ได้ขึ้นอยู่กับสิ่งที่เป็นนามธรรม

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

หมายเหตุ: ผู้เข้าชมสามารถรวมเป็นหนึ่งเดียวฟังก์ชั่นที่คุณสามารถทำรายงาน UI ตัดและเครื่องกรอง

การสำนึก

เราจะสร้างความหมายของอินเตอร์เฟซComputerPartการดำเนินงานที่ยอมรับได้แป้นพิมพ์เมาส์และจอภาพคอมพิวเตอร์ให้เกิดการอินเตอร์เฟซComputerPart เรียนนิติบุคคล เราจะกำหนดComputerPartVisitor อินเตอร์เฟซที่อื่นซึ่งได้กำหนดประเภทของการดำเนินการกับผู้เข้าชมการใช้คอมพิวเตอร์ของผู้เข้าชม Entity ดำเนินการที่เหมาะสม

VisitorPatternDemo เราแสดงให้เห็นถึงการใช้คอมพิวเตอร์ระดับชั้นComputerPartVisitor แสดงให้เห็นถึงการใช้รูปแบบการเข้าชม

แขกแบบแผนภาพ UML

ขั้นตอนที่ 1

กำหนดอินเตอร์เฟซที่แสดงถึงองค์ประกอบที่

ComputerPart.java

ComputerPart ระดับอินเตอร์เฟซที่สาธารณะ {
   ยอมรับโมฆะสาธารณะ (ComputerPartVisitor computerPartVisitor);
}

ขั้นตอนที่ 2

สร้างขยายชั้นเรียนนิติบุคคลดังกล่าวข้างต้นระดับ

Keyboard.java

เรียนสาธารณะคีย์บอร์ดดำเนิน ComputerPart {

   @Override
   ยอมรับโมฆะสาธารณะ (ComputerPartVisitor computerPartVisitor) {
      computerPartVisitor.visit (นี้);
   }
}

Monitor.java

การตรวจสอบระดับประชาชนดำเนิน ComputerPart {

   @Override
   ยอมรับโมฆะสาธารณะ (ComputerPartVisitor computerPartVisitor) {
      computerPartVisitor.visit (นี้);
   }
}

Mouse.java

เรียนสาธารณะเมาส์ดำเนิน ComputerPart {

   @Override
   ยอมรับโมฆะสาธารณะ (ComputerPartVisitor computerPartVisitor) {
      computerPartVisitor.visit (นี้);
   }
}

Computer.java

เรียนสาธารณะคอมพิวเตอร์ดำเนิน ComputerPart {
	
   ComputerPart [] ส่วน;

   คอมพิวเตอร์สาธารณะ () {
      ชิ้นส่วนใหม่ = ComputerPart [] {ใหม่เมาส์ () แป้นพิมพ์ใหม่ (), จอใหม่ ()};		
   } 


   @Override
   ยอมรับโมฆะสาธารณะ (ComputerPartVisitor computerPartVisitor) {
      for (int i = 0; I <parts.length; i ++) {
         ชิ้นส่วน [I] .accept (computerPartVisitor);
      }
      computerPartVisitor.visit (นี้);
   }
}

ขั้นตอนที่ 3

กำหนดอินเตอร์เฟซที่เป็นตัวแทนของผู้เข้าชม

ComputerPartVisitor.java

ComputerPartVisitor อินเตอร์เฟซที่สาธารณะ {
	ประชาชนเข้าชมเป็นโมฆะ (คอมพิวเตอร์คอมพิวเตอร์);
	ประชาชนเข้าชมเป็นโมฆะ (Mouse เมาส์);
	ประชาชนเข้าชมเป็นโมฆะ (คีย์บอร์ด);
	ประชาชนเข้าชมเป็นโมฆะ (จอภาพจอภาพ);
}

ขั้นตอนที่ 4

ผู้เข้าชมกิจการที่สร้างขึ้นเพื่อให้บรรลุระดับดังกล่าวข้างต้น

ComputerPartDisplayVisitor.java

เรียนสาธารณะ ComputerPartDisplayVisitor ดำเนิน ComputerPartVisitor {

   @Override
   ประชาชนเข้าชมเป็นโมฆะ (คอมพิวเตอร์คอมพิวเตอร์) {
      System.out.println ( "แสดงคอมพิวเตอร์.");
   }

   @Override
   ประชาชนเข้าชมเป็นโมฆะ (Mouse เมาส์) {
      System.out.println ( "แสดงเมาส์.");
   }

   @Override
   โมฆะสาธารณะเข้าชม (คีย์บอร์ด) {
      System.out.println ( "แสดงแป้นพิมพ์.");
   }

   @Override
   โมฆะสาธารณะเข้าชม (จอภาพมอนิเตอร์) {
      System.out.println ( "แสดงการตรวจสอบ.");
   }
}

ขั้นตอนที่ 5

ใช้ComputerPartDisplayVisitorที่จะแสดงส่วนหนึ่งของคอมพิวเตอร์

VisitorPatternDemo.java

เรียนสาธารณะ VisitorPatternDemo {
   ประชาชนเป็นโมฆะคง main (String args []) {

      คอมพิวเตอร์ ComputerPart = คอมพิวเตอร์เครื่องใหม่ ();
      computer.accept (ComputerPartDisplayVisitor ใหม่ ());
   }
}

ขั้นตอนที่ 6

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

แสดงเมาส์
แสดงแป้นพิมพ์
แสดงการตรวจสอบ
แสดงคอมพิวเตอร์