Adapter Desain Pola

chmood
Adapter Desain Pola

Maksud

Mengkonversi antarmuka dari sebuah kelas menjadi antarmuka lain klien harapkan. Adapter memungkinkan kelas bekerja sama yang tidak bisa dinyatakan karena interface yang tidak kompatibel.

Bungkus kelas yang ada dengan antarmuka baru.

Impedansi cocok komponen lama ke sistem baru

Masalah

Sebuah "dari rak" komponen menawarkan fungsionalitas menarik yang Anda ingin menggunakan kembali, namun "pandangan dunia" tidak kompatibel dengan filosofi dan arsitektur sistem saat ini sedang dikembangkan.

Diskusi
Reuse selalu menyakitkan dan sulit dipahami. Salah satu alasan telah kesengsaraan merancang sesuatu yang baru, sementara menggunakan kembali sesuatu yang lama. Selalu ada sesuatu yang tidak beres antara yang lama dan yang baru. Mungkin dimensi fisik atau misalignment. Mungkin waktu atau sinkronisasi. Mungkin asumsi malang atau standar bersaing.

Hal ini seperti masalah memasukkan tiga cabang steker listrik baru dalam stopkontak dua-cabang tua - semacam adaptor atau perantara diperlukan




Adapter adalah tentang menciptakan sebuah abstraksi perantara yang menerjemahkan, atau peta, komponen lama ke sistem baru. Klien memanggil metode pada objek Adapter yang mengarahkan mereka ke panggilan untuk komponen warisan. Strategi ini dapat diimplementasikan baik dengan warisan atau dengan agregasi.

Fungsi adaptor sebagai pembungkus atau modifikator kelas yang ada. Ini memberikan pandangan yang berbeda atau diterjemahkan dari kelas itu.

Struktur

Di bawah, metode display Rectangle warisan komponen () mengharapkan untuk menerima "x, y, w, h" parameter. Tapi klien ingin lulus "x kiri atas dan y" dan "x kanan bawah dan y". Keganjilan ini dapat didamaikan dengan menambahkan tingkat tambahan tipuan - yaitu obyek Adapter.




Adapter juga bisa dianggap sebagai "pembungkus/wrapper".




Contoh

Pola Adapter memungkinkan kelas dinyatakan tidak kompatibel untuk bekerja sama dengan mengubah antarmuka dari satu kelas ke sebuah antarmuka diharapkan oleh klien. Soket kunci pas memberikan contoh Adapter. Sebuah socket menempel ratchet, asalkan ukuran drive adalah sama. Ukuran drive yang khas di Amerika Serikat adalah 1/2 "dan 1/4". Jelas, 1/2 "ratchet drive tidak akan masuk ke dalam 1/4" socket berkendara kecuali adaptor digunakan. Sebuah 1/2 "untuk 1/4" adaptor memiliki "koneksi wanita untuk muat pada 1/2" 1/2 berkendara ratchet, dan "koneksi laki-laki agar sesuai dengan 1/4" 1/4 socket drive.




Periksa daftar

Mengidentifikasi pemain: komponen (s) yang ingin ditampung (yaitu klien), dan komponen yang perlu beradaptasi (yaitu Adaptee).

Mengidentifikasi interface yang memerlukan klien.

Desain "wrapper" kelas yang dapat "impedansi pertandingan" yang Adaptee kepada klien.

Adaptor / wrapper class "memiliki" instance dari kelas Adaptee.

Adaptor / kelas "peta" wrapper antarmuka klien untuk antarmuka Adaptee.

Penggunaan klien (digabungkan untuk) antarmuka baru

Aturan praktis

Adapter membuat hal-hal bekerja setelah mereka dirancang; Bridge membuat mereka bekerja sebelum mereka.

Jembatan dirancang muka untuk membiarkan abstraksi dan pelaksanaannya bervariasi secara independen. Adaptor dipasang untuk membuat kelas tidak berhubungan bekerja sama.

Adapter menyediakan antarmuka yang berbeda untuk subjek. Proxy memberikan antarmuka yang sama. Dekorator menyediakan sebuah antarmuka ditingkatkan.

Adaptor dimaksudkan untuk mengubah antarmuka dari sebuah objek yang ada. Dekorator meningkatkan objek lain tanpa mengubah interface-nya. Dekorator demikian lebih transparan untuk aplikasi dari adaptor adalah. Sebagai akibatnya, dekorator mendukung komposisi rekursif, yang tidak mungkin dengan Adapter murni.

Fasad mendefinisikan antarmuka baru, sedangkan Adapter menggunakan kembali sebuah antarmuka lama. Ingat bahwa Adapter membuat dua antarmuka yang ada bekerja sama sebagai lawan mendefinisikan yang sama sekali baru.

Komentar