บทช่วยสอน โหมดการทำงานร่วมกัน ที่ดีที่สุดในปี 2024 ในบทช่วยสอนนี้ คุณสามารถเรียนรู้ การแนะนำ,การสำนึก,

โหมดการทำงานร่วมกัน

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

การทำแบบนี้สร้างขึ้นในชั้นเรียนมีกลุ่มของตัวเองของวัตถุ ชั้นนี้จะมีวิธีการแก้ไขวัตถุกลุ่มเดียวกัน

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

การแนะนำ

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

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

เมื่อจะใช้: 1, วัตถุที่คุณต้องการที่จะเป็นตัวแทนของส่วนหนึ่ง - ทั้งลำดับชั้น (ต้นไม้)2 คุณต้องการให้ผู้ใช้ที่แตกต่างกันที่จะไม่สนใจการรวมกันของวัตถุที่มีวัตถุเดียวที่ผู้ใช้จะถูกรวมโครงสร้างแบบครบวงจรสำหรับวัตถุทั้งหมด

วิธีการแก้ไข: กิ่งไม้และใบไม้เพื่อให้บรรลุอินเตอร์เฟซแบบครบวงจรอินเตอร์เฟซคือการรวมกันของสาขาภายใน

รหัสสำคัญ: ไม้องค์ประกอบภายในของอินเตอร์เฟซและมีรายการคุณลักษณะภายในที่ใส่ชิ้นส่วน

ตัวอย่างการใช้งาน: 1, การแสดงออกทางคณิตศาสตร์รวมทั้งตัวถูกดำเนินการผู้ประกอบการและถูกดำเนินการอื่น ๆ ซึ่งอาจจะมีการดำเนินการอีกต้นไม้ประกอบการผู้ประกอบการและถูกดำเนินการอื่น ๆ2, JAVA AWT และแกว่งสำหรับปุ่มและช่องทำเครื่องหมายเป็นใบกิ่งไม้ตู้คอนเทนเนอร์

ข้อดี: 1, โมดูลระดับสูงเรียกง่ายๆ2 โหนดเพิ่มขึ้นเสรีภาพ

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

สถานการณ์การใช้งาน: ส่วนฉากโดยรวมเช่นเมนูต้นไม้ไฟล์การจัดการโฟลเดอร์

หมายเหตุ: เมื่อคุณกำหนดหมวดหมู่ต่างๆ

การสำนึก

เรามีพนักงานระดับชั้นได้รับการปฏิบัติที่เป็นส่วนผสมของการเรียนรุ่นที่CompositePatternDemoเราแสดงให้เห็นถึงการใช้งานของพนักงานระดับชั้นเพื่อเพิ่มลำดับชั้นสรรพสินค้าและพิมพ์พนักงานทุกคน

การผสมผสานรูปแบบแผนภาพ UML

ขั้นตอนที่ 1

สร้างคลาสพนักงานระดับที่มีรายชื่อของวัตถุพนักงาน

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:" + ฝ่าย + "เงินเดือน"
      + เงินเดือน + "]");
   }   
}

ขั้นตอนที่ 2

ใช้คลาสของพนักงานเพื่อสร้างและพิมพ์ลำดับชั้นของพนักงาน

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 (พนักงาน);
         }
      }		
   }
}

ขั้นตอนที่ 3

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

พนักงาน: [ชื่อ: จอห์นฝ่าย: ซีอีโอของเงินเดือน: 30000]
พนักงาน: [ชื่อ: โรเบิร์ตลึก: หัวหน้าฝ่ายขายเงินเดือน: 20000]
พนักงาน: [ชื่อ: ริชาร์ดฝ่ายขายเงินเดือน: 10000]
พนักงาน: [ชื่อ: ร็อบฝ่ายขายเงินเดือน: 10000]
พนักงาน: [ชื่อ: มิเชลลึก: หัวหน้าการตลาด, เงินเดือน: 20000]
พนักงาน: [ชื่อ: ลอร่า, ฝ่ายการตลาดเงินเดือน: 10000]
พนักงาน: [ชื่อ: บ๊อบ, ฝ่ายการตลาดเงินเดือน: 10000] 
โหมดการทำงานร่วมกัน
10/30