รูปแบบที่เป็นสื่อกลาง
รูปแบบที่เป็นสื่อกลาง (คนกลางแบบ) ถูกนำมาใช้เพื่อลดความซับซ้อนของการสื่อสารระหว่างส่วนใหญ่ของวัตถุและชั้นเรียน รุ่นนี้ยังมีระดับกลางซึ่งมักจะจัดการกับการสื่อสารระหว่างเรียนที่แตกต่างกันและการสนับสนุนสำหรับคู่หลวมทำให้รหัสง่ายต่อการรักษา รูปแบบการไกล่เกลี่ยเป็นรูปแบบพฤติกรรม
การแนะนำ
เจตนา: การใช้วัตถุตัวกลางที่ห่อหุ้มชุดของวัตถุโต้ตอบวัตถุตัวกลางการรักษาจากหมายถึงกันและกันอย่างชัดเจนทำให้มีเพศสัมพันธ์หลวมและเป็นอิสระสามารถเปลี่ยนการทำงานร่วมกันระหว่างพวกเขา
เป็นหลักในการแก้ปัญหา: มีจำนวนมากของวัตถุและความสัมพันธ์ระหว่างวัตถุนี้ย่อมจะนำไปสู่โครงสร้างของระบบที่กลายเป็นความซับซ้อนมาก แต่ถ้าวัตถุมีการเปลี่ยนแปลงเรายังต้องติดตามวัตถุที่เกี่ยวข้องกับมันและให้การรักษาที่เหมาะสม .
เมื่อใช้: หลายชั้นเรียนควบคู่ไปกับแต่ละอื่น ๆ การสร้างโครงสร้างเครือข่าย
วิธีการแก้ไข: โครงสร้างเครือข่ายดังกล่าวข้างต้นถูกแยกออกเป็นโครงสร้างดาว
รหัสสำคัญ: การสื่อสารระหว่างเพื่อนร่วมงานวัตถุแค็ปซูลชั้นแยกต่างหาก
ตัวอย่างการใช้งาน: 1 ก่อนที่จะเข้าของจีนองค์การการค้าโลกการค้าต่างประเทศกับแต่ละอื่น ๆ โครงสร้างที่ซับซ้อนมันเป็นประเทศองค์การการค้าโลกการค้ากับแต่ละอื่น ๆ2 สนามบินระบบการตั้งเวลา 3 MVC กรอบที่ C (ควบคุม) เป็น M (Model) และ V (view) คนกลาง
ข้อดี: 1, ลดความซับซ้อนของการเรียนจะถูกแปลงเป็นแบบหนึ่งต่อหลาย2 แต่ละ decoupling ระหว่างเรียน 3 ซึ่งสอดคล้องกับหลักการของ Demeter
ข้อเสีย: โบรกเกอร์ขนาดใหญ่จะกลายเป็นความซับซ้อนและยากที่จะรักษา
สถานการณ์การใช้งาน: 1 อยู่ระหว่างวัตถุในระบบความสัมพันธ์ของการอ้างอิงที่ซับซ้อนมากขึ้นนำไปสู่การพึ่งพาอาศัยกันในหมู่พวกเขาทำให้เกิดความสับสนและยากที่จะนำมาใช้โครงสร้างของวัตถุ2 ต้องการคนชั้นกลางที่ห่อหุ้มพฤติกรรมของหลายชั้นเรียนและไม่ต้องการที่จะสร้าง subclasses มากเกินไป
หมายเหตุ: มันไม่ควรจะใช้เมื่อเกิดความสับสนความรับผิดชอบ
การสำนึก
ลองเดินผ่านรูปแบบตัวกลางเช่นห้องสนทนา ตัวอย่างเช่นผู้ใช้หลายคนสามารถส่งข้อความไปยังห้องสนทนาห้องแชทข้อความจะแสดงให้ผู้ใช้ทุกคนเราจะสร้างสองชั้นห้องสนทนาและผู้ใช้วัตถุผู้ใช้วิธีการที่ห้องสนทนาที่จะแบ่งปันข่าวของพวกเขา
MediatorPatternDemo เราแสดงให้เห็นถึงการใช้วัตถุชั้นผู้ใช้เพื่อแสดงการสื่อสารระหว่างพวกเขา
ขั้นตอนที่ 1
สร้างชั้นตัวกลาง
ChatRoom.java
นำเข้า java.util.Date; ห้องสนทนาสาธารณะคุณภาพระดับ { ประชาชนเป็นโมฆะคง ShowMessage (ผู้ใช้ผู้ใช้ข้อความ String) { System.out.println (วันที่ใหม่. ToString () () + "[" + User.getName () + "]:" ข้อความ +); } }
ขั้นตอนที่ 2
สร้างชั้นเรียนผู้ใช้
User.java
ผู้ใช้ระดับสาธารณะ { ชื่อ String เอกชน ประชาชน String getName () { กลับชื่อ; } โมฆะสาธารณะ setName (ชื่อ String) { ชื่อ this.name =; } ผู้ใช้ที่สาธารณะ (ชื่อ String) { ชื่อ this.name =; } โมฆะสาธารณะ SendMessage (ข้อความ String) { ChatRoom.showMessage (นี้ข้อความ); } }
ขั้นตอนที่ 3
ใช้วัตถุผู้ใช้เพื่อแสดงการสื่อสารระหว่างพวกเขา
MediatorPatternDemo.java
เรียนสาธารณะ MediatorPatternDemo { ประชาชนเป็นโมฆะคง main (String args []) { โรเบิร์ตผู้ใช้ = ผู้ใช้ใหม่ ( "โรเบิร์ต"); ผู้ใช้จอห์น = ผู้ใช้ใหม่ ( "จอห์น"); robert.sendMessage ( "สวัสดีจอห์น !!"); john.sendMessage ( "สวัสดีโรเบิร์ต !!"); } }
ขั้นตอนที่ 4
ตรวจสอบการส่งออก
พฤหัสบดีที่ 31 มกราคม 2013 16:05:46 IST [โรเบิร์ต] :! Hi จอห์น! พฤหัสบดีที่ 31 มกราคม 2013 16:05:46 IST [จอห์น] :! สวัสดีโรเบิร์ต!