รูปแบบของผู้เข้าชม
ในรูปแบบที่ผู้เข้าชม (แขกแบบ) เราจะใช้ระดับผู้เยี่ยมชมจะเปลี่ยนชั้นเรียนองค์ประกอบขั้นตอนวิธีการดำเนินการ ด้วยวิธีนี้มีการดำเนินการขั้นตอนวิธีการที่สามารถองค์ประกอบของผู้เข้าชมมีการเปลี่ยนแปลง ประเภทของรูปแบบการออกแบบนี้เป็นรูปแบบพฤติกรรม ตามรูปแบบวัตถุองค์ประกอบได้รับการยอมรับเข้าชมเป้าหมายเพื่อให้ผู้เข้าชมสามารถจัดการกับวัตถุวัตถุองค์ประกอบการดำเนินงาน
การแนะนำ
เจตนา: โครงสร้างหลักของข้อมูลและการแยกการจัดการ
เป็นหลักในการแก้ปัญหา: โครงสร้างข้อมูลที่มีเสถียรภาพและปัญหาการมีเพศสัมพันธ์ในการดำเนินงานตัวแปร
เมื่อใช้: จำเป็นต้องมีโครงสร้างของวัตถุเป้าหมายในการดำเนินการที่แตกต่างกันและไม่มีส่วนเกี่ยวข้องจำนวนมาก แต่การกระทำเหล่านี้จะต้องหลีกเลี่ยง "มลพิษ" ของชั้นของวัตถุเหล่านี้ใช้งานของผู้เข้าชมแพคเกจเหล่านี้เพื่อการเรียน
วิธีการแก้ไข: ชั้นจะเข้าถึงภายในบวกการรับนักท่องเที่ยวชาวต่างชาติที่จะให้อินเตอร์เฟซ
รหัสสำคัญ: ชั้นฐานข้อมูลซึ่งมีวิธีการที่จะยอมรับผู้เข้าชมตัวเองมีการอ้างอิงถึงผู้เข้าชมที่เข้ามา
ตัวอย่างการประยุกต์ใช้: ท่านเป็นแขกที่บ้านเพื่อนของคุณมีผู้เข้าชมเพื่อนยอมรับเข้าชมของคุณผ่านคำอธิบายของเพื่อนของคุณแล้วคำอธิบายของเพื่อนที่จะทำให้การตัดสินซึ่งเป็นรูปแบบที่ผู้เข้าชม
ข้อดี: 1 ซึ่งสอดคล้องกับหลักการความรับผิดชอบเดียว2 การขยายขนาดที่ดีเยี่ยม 3 ความยืดหยุ่น
ข้อเสีย: 1, องค์ประกอบเฉพาะของผู้เข้าชมประกาศรายละเอียดของการละเมิดหลักการของ Demeter ที่2, องค์ประกอบเฉพาะของการเปลี่ยนแปลงที่ยากมากขึ้น 3 ในการละเมิดหลักการพึ่งพาผกผันพึ่งพาการเรียนเฉพาะที่ไม่ได้ขึ้นอยู่กับสิ่งที่เป็นนามธรรม
สถานการณ์การใช้งาน: 1, วัตถุที่สอดคล้องกับโครงสร้างชั้นวัตถุที่ไม่มีการเปลี่ยนแปลงบ่อย แต่มักจะต้องกำหนดดำเนินการใหม่ในโครงสร้างวัตถุนี้2 ที่จำเป็นสำหรับโครงสร้างของวัตถุเป้าหมายในการดำเนินการที่แตกต่างกันและไม่มีส่วนเกี่ยวข้องจำนวนมาก แต่การกระทำเหล่านี้จะต้องหลีกเลี่ยง "มลพิษ" ของชั้นของวัตถุเหล่านี้เราไม่ต้องการที่จะปรับเปลี่ยนชั้นเรียนเหล่านี้เมื่อคุณเพิ่มการดำเนินการใหม่
หมายเหตุ: ผู้เข้าชมสามารถรวมเป็นหนึ่งเดียวฟังก์ชั่นที่คุณสามารถทำรายงาน UI ตัดและเครื่องกรอง
การสำนึก
เราจะสร้างความหมายของอินเตอร์เฟซComputerPartการดำเนินงานที่ยอมรับได้แป้นพิมพ์เมาส์และจอภาพคอมพิวเตอร์ให้เกิดการอินเตอร์เฟซComputerPart เรียนนิติบุคคล เราจะกำหนดComputerPartVisitor อินเตอร์เฟซที่อื่นซึ่งได้กำหนดประเภทของการดำเนินการกับผู้เข้าชมการใช้คอมพิวเตอร์ของผู้เข้าชม Entity ดำเนินการที่เหมาะสม
VisitorPatternDemo เราแสดงให้เห็นถึงการใช้คอมพิวเตอร์ระดับชั้นComputerPartVisitor แสดงให้เห็นถึงการใช้รูปแบบการเข้าชม
ขั้นตอนที่ 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
ตรวจสอบการส่งออก
แสดงเมาส์ แสดงแป้นพิมพ์ แสดงการตรวจสอบ แสดงคอมพิวเตอร์