ภาพรวม
การแปลงอินเทอร์เฟซเป็นอินเทอร์เฟซอื่นที่ผู้ใช้ต้องการโหมดอะแดปเตอร์อนุญาตให้คลาสที่ไม่สามารถทำงานร่วมกันได้เนื่องจากความไม่ลงรอยกันของอินเทอร์เฟซ
สองวิธีการใช้งาน
1. โหมดอะแดปเตอร์คลาส:
2. โหมดอะแดปเตอร์วัตถุ:
แผนภาพ UML ของโหมดอะแดปเตอร์ของคลาสมีดังนี้:
รูปแบบอะแดปเตอร์ของชั้นเรียนแปลง API ของคลาสที่ดัดแปลงเป็น API ของคลาสเป้าหมาย
ตัวละครที่ออกแบบในภาพด้านบนคือ:
เป้าหมาย: นี่คืออินเทอร์เฟซที่คุณกำลังมองหา
บทบาทแหล่งที่มา (Adapee): อินเทอร์เฟซที่จำเป็นในการปรับตัว
บทบาทอะแดปเตอร์ (อะแดปเตอร์): มันเป็นแกนหลักของโหมดนี้และอะแดปเตอร์แปลงอินเทอร์เฟซต้นทางเป็นอินเทอร์เฟซเป้าหมาย
ตัวอย่างรหัส:
เป้าหมายอินเตอร์เฟส {โมฆะวิธีการ 1 (); โมฆะวิธีการ 2 (); // ฉันหวังว่าจะได้วิธีนี้} // คลาสต้นทางไม่มีวิธีการใน Method2 คลาส Adaptee {โมฆะสาธารณะวิธีการ 1 () {system.out.println ("method1"); }} อะแดปเตอร์คลาสจะขยายการใช้งาน Adaptee onprements target {@Override โมฆะสาธารณะเมธอด 2 () {System.out.println ("นี่คือวิธีเป้าหมาย"); }} การบำรุงรักษาคลาสสาธารณะ {โมฆะสาธารณะคงที่หลัก (สตริง arg []) {เป้าหมายเป้าหมาย = อะแดปเตอร์ใหม่ (); target.method2 (); - แผนภาพ UML ของโหมดอะแดปเตอร์ของวัตถุมีดังนี้:
แนวคิดหลักเหมือนกับโหมดอะแดปเตอร์ของคลาส มันเปลี่ยนคลาสอะแดปเตอร์เท่านั้นไม่ได้รับมรดกคลาส Adaptee แต่มีการอ้างอิงถึงคลาส Adaptee รหัสมีดังนี้:
เป้าหมายอินเตอร์เฟส {โมฆะวิธีการ 1 (); โมฆะ Method2 ();} คลาส Adaptee {โมฆะสาธารณะวิธีการ 1 () {system.out.println ("method1"); }} คลาสอะแดปเตอร์ใช้เป้าหมาย {Private Adaptee Adaptee; อะแดปเตอร์สาธารณะ (Adaptee Adaptee) {this.adaptee = Adaptee; } @Override โมฆะสาธารณะวิธีการ 2 () {system.out.println ("นี่คือวิธีเป้าหมาย"); } @Override โมฆะสาธารณะวิธีการ 1 () {// todo วิธีการที่สร้างขึ้นอัตโนมัติ stub adaptee.method1 (); }} การบำรุงรักษาคลาสสาธารณะ {โมฆะสาธารณะคงที่หลัก (สตริง arg []) {เป้าหมายเป้าหมาย = อะแดปเตอร์ใหม่ (ใหม่ adaptee ()); target.method2 (); - ข้อดีและข้อเสียของโหมดอะแดปเตอร์:
ความสามารถในการนำกลับมาใช้ใหม่ได้ดีขึ้นและปรับขนาดได้ดีขึ้น ระบบจำเป็นต้องใช้คลาสที่มีอยู่และอินเทอร์เฟซดังกล่าวไม่ตรงกับความต้องการของระบบดังนั้นฟังก์ชั่นเหล่านี้สามารถนำกลับมาใช้ใหม่ได้ดีขึ้นผ่านโหมดอะแดปเตอร์ เมื่อใช้ฟังก์ชั่นอะแดปเตอร์คุณสามารถเรียกฟังก์ชั่นที่คุณพัฒนาด้วยตัวเองเพื่อขยายฟังก์ชั่นของระบบตามธรรมชาติ
ข้อเสีย: การใช้อะแดปเตอร์มากเกินไปจะทำให้ระบบยุ่งและยากที่จะเข้าใจโดยรวม
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น