รูปแบบบริดจ์แยกส่วนนามธรรมออกจากส่วนการใช้งานเพื่อให้ทั้งคู่สามารถเปลี่ยนแปลงได้อย่างอิสระและสามารถทำงานร่วมกันได้อย่างกลมกลืน ทั้งส่วนที่เป็นนามธรรมและส่วนการใช้งานสามารถเปลี่ยนแปลงได้อย่างอิสระโดยไม่ส่งผลกระทบต่อกันและกันลดการมีเพศสัมพันธ์ของรหัสและปรับปรุงความสามารถในการปรับขนาดของรหัส
ตามคำจำกัดความของ GOF บทบาทของโหมดบริดจ์คือ "แยกสิ่งที่เป็นนามธรรมออกจากการใช้งานเพื่อให้ทั้งสองสามารถเปลี่ยนแปลงได้อย่างอิสระ" รูปแบบนี้เป็นประโยชน์อย่างมากต่อการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ทั่วไปใน JavaScript
หนึ่งในแอพพลิเคชั่นที่พบบ่อยที่สุดและใช้งานได้จริงของโหมดบริดจ์คือฟังก์ชั่นการเรียกกลับเหตุการณ์ ตัวอย่าง: ผู้ฟังเหตุการณ์, สรุปคำสั่งที่ประมวลผลเหตุการณ์ในฟังก์ชั่นการโทรกลับและตั้งโปรแกรมผ่านอินเตอร์เฟสมากกว่าการใช้งาน
ทฤษฎีพื้นฐาน
คำจำกัดความรูปแบบสะพาน: แยกส่วนที่เป็นนามธรรมออกจากชิ้นส่วนการใช้งานเพื่อให้พวกเขาสามารถเปลี่ยนแปลงได้อย่างอิสระ
โหมดบริดจ์ส่วนใหญ่ประกอบด้วย 4 บทบาท:
(1) คลาสนามธรรม
(2) ขยายคลาสนามธรรม
(3) ใช้อินเทอร์เฟซคลาส
(4) คลาสการใช้งานเฉพาะ
ตามลักษณะของภาษาจาวาสคริปต์เราทำให้มันง่ายขึ้นเป็น 2 บทบาท:
(1) ขยายคลาสนามธรรม
(2) คลาสการใช้งานเฉพาะ
จะเข้าใจโหมดบริดจ์ได้อย่างไร? มายกตัวอย่างต่อไป
การใช้โหมดบริดจ์
กุญแจสำคัญในการทำความเข้าใจความคิดของรูปแบบสะพานคือการเข้าใจความคิดในการแยกส่วนที่เป็นนามธรรมและตระหนักถึงส่วนต่างๆ มายกตัวอย่างเพื่ออธิบาย
โหมดบริดจ์ที่ง่ายที่สุด
ในความเป็นจริง jQuery แต่ละฟังก์ชั่นที่เราใช้บ่อยที่สุดคือโหมดบริดจ์ทั่วไป เราจำลองมันดังนี้:
var advers = function (arr, fn) {สำหรับ (var i = 0; i <arr.length; i ++) {var val = arr [i]; ถ้า (fn.call (val, i, val, arr)) {return false; }}} var arr = [1, 2, 3, 4]; แต่ละ (arr, function (i, v) {arr [i] = v * 2;})ในตัวอย่างนี้เราวนรอบอาร์เรย์ ARR ผ่านแต่ละฟังก์ชั่น แม้ว่าตัวอย่างนี้เป็นเรื่องธรรมดามาก แต่ก็มีรูปแบบสะพานทั่วไป
ในตัวอย่างนี้ส่วนที่เป็นนามธรรมคือแต่ละฟังก์ชั่นซึ่งเป็นคลาสนามธรรมขยายที่กล่าวถึงข้างต้นและส่วนการใช้งานคือ FN นั่นคือคลาสการใช้งานคอนกรีต ส่วนที่เป็นนามธรรมและส่วนการใช้งานสามารถเปลี่ยนแปลงได้อย่างอิสระ แม้ว่าตัวอย่างนี้จะง่าย แต่ก็เป็นแอปพลิเคชั่นทั่วไปของโหมดบริดจ์
โหมดบริดจ์ในการพัฒนาปลั๊กอิน
สถานการณ์ที่เหมาะสมอย่างหนึ่งสำหรับโหมดบริดจ์คือการพัฒนาส่วนประกอบ เพื่อที่จะปรับให้เข้ากับโอกาสที่แตกต่างกันส่วนประกอบจะมีการเปลี่ยนแปลงมากมายในมิติที่แตกต่างกัน โหมดบริดจ์สามารถนำไปใช้ที่นี่โดยแยกสิ่งที่เป็นนามธรรมออกจากการใช้งานทำให้ส่วนประกอบขยายได้มากขึ้น
สมมติว่าเราต้องการพัฒนาปลั๊กอินแบบป๊อปอัพซึ่งมีป๊อปอัพประเภทต่าง ๆ : การเตือนความจำข้อความธรรมดาตัวเตือนข้อผิดพลาดและวิธีการแสดงผลของการแจ้งเตือนแต่ละครั้งนั้นแตกต่างกัน นี่เป็นสถานการณ์การเปลี่ยนแปลงหลายมิติทั่วไป ก่อนอื่นเรากำหนดสองคลาส: หน้าต่างป๊อปอัพข้อความปกติและข้อความแสดงข้อผิดพลาดหน้าต่างป๊อปอัพ
ฟังก์ชั่น messageDialog (ภาพเคลื่อนไหว) {this.animation = แอนิเมชั่น;} messageDialog.prototype.show = function () {this.animation.show ();} ฟังก์ชั่น errordialog (ภาพเคลื่อนไหว) {this.animation = animation;คลาสทั้งสองนี้เป็นส่วนที่เป็นนามธรรมที่กล่าวถึงข้างต้นนั่นคือคลาสนามธรรมที่ขยายออกไปซึ่งทั้งคู่มีภาพเคลื่อนไหวสมาชิก
หน้าต่างป๊อปอัพทั้งสองจะแสดงผ่านวิธีการแสดง แต่เอฟเฟกต์ภาพเคลื่อนไหวแตกต่างกัน เรากำหนดคลาสเอฟเฟกต์การแสดงผลสองคลาสดังนี้:
ฟังก์ชั่น lineranimation () {} lineranimation.prototype.show = function () {console.log ("มันคือ liner");} ฟังก์ชัน easeanimation () {} easeanimation.prototype.show = function () {console.log (คลาสทั้งสองนี้เป็นคลาสการใช้งานที่เฉพาะเจาะจงซึ่งบรรลุเอฟเฟกต์การแสดงผลเฉพาะ แล้วเราจะเรียกมันว่าอย่างไร?
ข้อความ var = ใหม่ messageDialog (lineranimation ใหม่ ()); message.show (); var error = new errordialog (ใหม่ easeanimation ()); error.show ();
หากเราต้องการเพิ่มเอฟเฟกต์ภาพเคลื่อนไหวเราสามารถกำหนดคลาสเอฟเฟกต์อื่นและส่งผ่าน
สรุป
กุญแจสำคัญในการเรียนรู้โมเดลบริดจ์คือการเข้าใจการแยกระหว่างส่วนนามธรรมและส่วนการดำเนินการเพื่อให้ทั้งสองสามารถเปลี่ยนแปลงได้อย่างอิสระโดยไม่ต้องหมกมุ่นอยู่กับรูปแบบ ปลั๊กอิน JS มีการเปลี่ยนแปลงที่ยืดหยุ่นและความหลากหลายของสถานการณ์ที่เกี่ยวข้องเหมาะมากสำหรับการใช้โมเดลนี้เพื่อให้บรรลุ สิ่งที่สำคัญที่สุดเกี่ยวกับการใช้โหมดบริดจ์คือการค้นหามิติที่แตกต่างกันของการเปลี่ยนแปลงในระบบ
(1) ข้อดีของโหมดบริดจ์:
การแยกสิ่งที่เป็นนามธรรมออกจากการใช้งานช่วยในการจัดการส่วนประกอบต่าง ๆ ของซอฟต์แวร์อย่างอิสระ
(2) ข้อเสียของโหมดบริดจ์:
แต่ละองค์ประกอบบริดจ์ใช้เพื่อเพิ่มการเรียกใช้ฟังก์ชันซึ่งมีผลกระทบเชิงลบต่อประสิทธิภาพของแอปพลิเคชัน เพิ่มความซับซ้อนของระบบ หากฟังก์ชั่นบริดจ์ถูกใช้เพื่อเชื่อมต่อสองฟังก์ชั่นและหนึ่งในฟังก์ชั่นจะไม่ถูกเรียกออกไปนอกฟังก์ชั่นบริดจ์เลยฟังก์ชั่นบริดจ์ไม่จำเป็นในเวลานี้
โหมดบริดจ์ "แยกสิ่งที่เป็นนามธรรมออกจากการใช้งานเพื่อให้ทั้งสองเปลี่ยนแปลงอย่างอิสระ" มันสามารถส่งเสริมความเป็นโมดูลของรหัสนำไปสู่การใช้งานที่สะอาดและปรับปรุงความยืดหยุ่นเชิงนามธรรม สามารถใช้ในการเชื่อมต่อชุดของคลาสและฟังก์ชั่นและให้วิธีการเข้าถึงข้อมูลส่วนตัวด้วยฟังก์ชั่นที่ได้รับการยกเว้น