บทช่วยสอน โหมดการทำงานร่วมกัน ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ การแนะนำ,การสำนึก,
โหมดรวม (แบบคอมโพสิต) ยังเป็นที่รู้จักในฐานะส่วนหนึ่งของรูปแบบโดยรวมสำหรับกลุ่มของวัตถุที่คล้ายกันเป็นวัตถุเดียว รูปแบบรวมกันอยู่บนพื้นฐานของโครงสร้างที่จะรวมวัตถุที่แสดงถึงส่วนหนึ่งและระดับโดยรวม ประเภทของรูปแบบการออกแบบเป็นรูปแบบโครงสร้างนี้จะสร้างโครงสร้างของกลุ่มเป้าหมาย
การทำแบบนี้สร้างขึ้นในชั้นเรียนมีกลุ่มของตัวเองของวัตถุ ชั้นนี้จะมีวิธีการแก้ไขวัตถุกลุ่มเดียวกัน
เราจากตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้การรวมกันของรูปแบบที่ ตัวอย่างแสดงให้เห็นถึงลำดับชั้นของพนักงานในองค์กร
เจตนา: เขียนวัตถุลงในโครงสร้างต้นไม้เพื่อเป็นตัวแทนของส่วน "- ทั้ง" ลำดับชั้นโหมดการทำงานร่วมกันจะช่วยให้ผู้ใช้สามารถใช้วัตถุเดียวและองค์ประกอบของวัตถุอย่างสม่ำเสมอ
เป็นหลักในการแก้ปัญหา: มันเป็นปัญหาของต้นไม้ของเราเบลอแนวคิดขององค์ประกอบที่เรียบง่ายและองค์ประกอบที่ซับซ้อนที่ลูกค้าสามารถจัดการกับองค์ประกอบที่ง่ายในการจัดการองค์ประกอบที่ซับซ้อนเพื่อให้โครงสร้างภายในของ decoupling ของลูกค้าและความซับซ้อนขององค์ประกอบ
เมื่อจะใช้: 1, วัตถุที่คุณต้องการที่จะเป็นตัวแทนของส่วนหนึ่ง - ทั้งลำดับชั้น (ต้นไม้)2 คุณต้องการให้ผู้ใช้ที่แตกต่างกันที่จะไม่สนใจการรวมกันของวัตถุที่มีวัตถุเดียวที่ผู้ใช้จะถูกรวมโครงสร้างแบบครบวงจรสำหรับวัตถุทั้งหมด
วิธีการแก้ไข: กิ่งไม้และใบไม้เพื่อให้บรรลุอินเตอร์เฟซแบบครบวงจรอินเตอร์เฟซคือการรวมกันของสาขาภายใน
รหัสสำคัญ: ไม้องค์ประกอบภายในของอินเตอร์เฟซและมีรายการคุณลักษณะภายในที่ใส่ชิ้นส่วน
ตัวอย่างการใช้งาน: 1, การแสดงออกทางคณิตศาสตร์รวมทั้งตัวถูกดำเนินการผู้ประกอบการและถูกดำเนินการอื่น ๆ ซึ่งอาจจะมีการดำเนินการอีกต้นไม้ประกอบการผู้ประกอบการและถูกดำเนินการอื่น ๆ2, JAVA AWT และแกว่งสำหรับปุ่มและช่องทำเครื่องหมายเป็นใบกิ่งไม้ตู้คอนเทนเนอร์
ข้อดี: 1, โมดูลระดับสูงเรียกง่ายๆ2 โหนดเพิ่มขึ้นเสรีภาพ
จุดด้อย: เมื่อใช้โหมดรวมใบและกิ่งก้านของมันมีการดำเนินการประกาศคลาสแทนของอินเตอร์เฟซในการละเมิดของการพึ่งพาผกผันหลักการ
สถานการณ์การใช้งาน: ส่วนฉากโดยรวมเช่นเมนูต้นไม้ไฟล์การจัดการโฟลเดอร์
หมายเหตุ: เมื่อคุณกำหนดหมวดหมู่ต่างๆ
เรามีพนักงานระดับชั้นได้รับการปฏิบัติที่เป็นส่วนผสมของการเรียนรุ่นที่CompositePatternDemoเราแสดงให้เห็นถึงการใช้งานของพนักงานระดับชั้นเพื่อเพิ่มลำดับชั้นสรรพสินค้าและพิมพ์พนักงานทุกคน
สร้างคลาสพนักงานระดับที่มีรายชื่อของวัตถุพนักงาน
Employee.java
นำเข้า java.util.ArrayList; นำเข้า java.util.List; พนักงานระดับสาธารณะ { ชื่อ String เอกชน ฝ่าย String เอกชน เงินเดือน int เอกชน รายการส่วนตัว <ลูกจ้าง> ผู้ใต้บังคับบัญชา; // สร้างพนักงานสาธารณะ (ชื่อ String, String ฝ่าย int Sal) { ชื่อ this.name =; this.dept = ฝ่าย; this.salary = Sal; ผู้ใต้บังคับบัญชา = ArrayList ใหม่ <ลูกจ้าง> (); } โมฆะสาธารณะเพิ่ม (พนักงานจ) { subordinates.add (E); } โมฆะสาธารณะลบ (พนักงานจ) { subordinates.remove (E); } รายการสาธารณะ <ลูกจ้าง> getSubordinates () { ผู้ใต้บังคับบัญชากลับ; } สาธารณะ String toString () { กลับ ( "พนักงาน: [ชื่อ:" + ชื่อ + "Dept:" + ฝ่าย + "เงินเดือน" + เงินเดือน + "]"); } }
ใช้คลาสของพนักงานเพื่อสร้างและพิมพ์ลำดับชั้นของพนักงาน
CompositePatternDemo.java
CompositePatternDemo คลาสที่สาธารณะ { ประชาชนเป็นโมฆะคง main (String args []) { ซีอีโอของพนักงานพนักงานใหม่ = ( "จอห์น", "ซีอีโอ" 30000); headSales พนักงานใหม่ = พนักงาน ( "โรเบิร์ต", "ขายหัว" 20000); พนักงาน headMarketing = ใหม่พนักงาน ( "มิเชล", "การตลาดหัวหน้า" 20000); clerk1 ลูกจ้างพนักงานใหม่ = ( "ลอร่า", "การตลาด" 10000); clerk2 ลูกจ้างพนักงานใหม่ = ( "บ๊อบ", "การตลาด" 10000); พนักงาน salesExecutive1 = ใหม่พนักงาน ( "ริชาร์ด", "ขาย" 10000); พนักงาน salesExecutive2 = ใหม่พนักงาน ( "ร็อบ", "ขาย" 10000); CEO.add (headSales); CEO.add (headMarketing); headSales.add (salesExecutive1); headSales.add (salesExecutive2); headMarketing.add (clerk1); headMarketing.add (clerk2); // พิมพ์ทั้งหมดขององค์กรพนักงาน System.out.println (ซีอีโอ); สำหรับ (พนักงาน headEmployee: CEO.getSubordinates ()) { System.out.println (headEmployee); สำหรับ (พนักงานพนักงาน: headEmployee.getSubordinates ()) { System.out.println (พนักงาน); } } } }
ตรวจสอบการส่งออก
พนักงาน: [ชื่อ: จอห์นฝ่าย: ซีอีโอของเงินเดือน: 30000] พนักงาน: [ชื่อ: โรเบิร์ตลึก: หัวหน้าฝ่ายขายเงินเดือน: 20000] พนักงาน: [ชื่อ: ริชาร์ดฝ่ายขายเงินเดือน: 10000] พนักงาน: [ชื่อ: ร็อบฝ่ายขายเงินเดือน: 10000] พนักงาน: [ชื่อ: มิเชลลึก: หัวหน้าการตลาด, เงินเดือน: 20000] พนักงาน: [ชื่อ: ลอร่า, ฝ่ายการตลาดเงินเดือน: 10000] พนักงาน: [ชื่อ: บ๊อบ, ฝ่ายการตลาดเงินเดือน: 10000]