Design Pattern Adapter & Facade
Adam Hendra Brata
PPP Tujuan Perkuliahan Memahami structural pattern: Adapter Memahami structural pattern: Facade
Web Services
PPP
Web Services
ADAPTER
PPP Introduksi Perjalanan ke tempat yang jauh di seberang lautan
Web Services
PPP Introduksi
Web Services
PPP Introduksi
PPP Introduksi Handphone Low Battery
PPP Introduksi Mau nge-charge Handphone
Tapi colokan listriknya nggak sama
PPP Adapter Tujuan “Merubah” antarmuka sebuah klas menjadi antarmuka klas yang lain yang diinginkan Adapter memungkinkan klas – klas dapat bekerja sama yang sebelumnya tidak dapat dilakukan karena antarmuka yang tidak cocok
Web Services Dikenal juga dengan nama Wrapper
PPP Motivasi
Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai
Adapter mengimplementasikan antarmuka yang dipakai oleh klas yang kita buat dan adapter dapat “menyambungkan” permintaan kita dengan antarmuka dari vendor agar tetap dapat terlayani
Antarmuka yang disediakan tidak sama dengan kode yang sudah kita tulis
Dapat berkomunikasi tanpa harus merubah kode sistem kita ataupun kode dari sistem lain, kita hanya butuh menulis kode baru untuk “menerjemahkan”
PPP Motivasi Kadang – kadang toolkit atau klas-klas library tidak dapat digunakan karena antarmukanya tidak sesuai dengan antarmuka yang diperlukan oleh aplikasi Kita tidak dapat mengubah antarmuka dari library, karena kita bisa jadi tidak memiliki kode sumbernya
Web Services
Bahkan jika kita memiliki kode sumbernya, kita tidak harus mengubah kode dalam library untuk setiap aplikasi yang spesifik karena hal ini sangat tidak efisien
PPP Pemakaian Kita ingin menggunakan klas yang sudah ada (bisa dari library atau sistem lain) namun antarmukanya tidak cocok dengan yang kita butuhkan Kita ingin membuat kelas yang dapat “digunakan kembali”, yang dapat bekerja sama dengan klas lain yang tidak berada pada sistem kita (atau dengan kata lain klas lain ini dari sistem yang lain) dengan antarmuka yang tidak cocok
Web Services
PPP Struktur
Web Services
PPP Struktur
Web Services
PPP Unsur Target mendefinisikan antarmuka spesifik yang digunakan Client
Client bekerja sama dengan objek – objek yang sesuai dengan antarmuka Target
Adaptee
Web Services
mendefinisikan sebuah antarmuka yang sudah ada dan yang perlu beradaptasi
Adapter menyesuaikan antarmuka Adaptee untuk antarmuka Target
PPP
Web Services Contoh kode : ADAPTER
PPP Contoh Kode
Web Services
PPP Contoh Kode
Web Services
PPP Contoh Kode
Web Services
PPP Contoh Kode
Web Services
PPP Contoh Kode
Web Services
PPP Contoh Kode
Web Services
PPP Contoh Kode
Web Services
PPP
Web Services
FACADE
PPP Introduksi Kita pasti pernah saat ingin melakukan sesuatu akan tetapi pasti ada hal – hal lain yang harus kita lakukan sebelum kita melakukan tujuan utama kita Nonton film di rumah, tapi sebelum itu harus melakukan banyak hal
PPP Introduksi Pernahkah kita mengkhayal punya sebuah “remote ajaib” yang bisa membantu kita menyelesaikan tugas-tugas dengan sekali tekan saja
PPP Facade Tujuan Menyediakan antarmuka yang seragam untuk satu set antarmuka dalam sebuah subsistem Facade mendefinisikan antarmuka tingkat tinggi yang membuat subsistem lebih mudah digunakan
Web Services
PPP Motivasi
PPP Motivasi
Terdiri dari banyak klas dan banyak juga interaksinya serta ada 1 set antarmuka yang besar untuk dipakai dan dipelajari
PPP Motivasi
PPP Motivasi
PPP Pemakaian Kita ingin memberikan antarmuka yang sederhana untuk subsistem yang kompleks Ada banyak ketergantungan antara klien dan klas - klas yang mengimplementasikan abstraksi
Kita dapat menggunakan facade untuk memisahkan subsistem tersebut dari klien dan dari subsistem yang lain, sehingga meningkatkan tingkat independen dan portabilitas dari subsistem
Web Services
Kita ingin membuat “lapisan” atau tingkatan dari subsistem kita Kita dapat menggunakan facade untuk menentukan “entry point” dari setiap tingkatan subsistem
PPP Struktur
Web Services
PPP Unsur Facade Mengetahui klas subsistem mana yang bertanggung jawab terhadap sebuah permintaan Mendelegasikan permintaan klien pada subsistem yang tepat
Subsystem Classes
Web Services Mengimplementasikan fungsionalitas dari subsistem Menangani pekerjaan yang “ditugaskan” oleh Facade Tidak memiliki pengetahuan tentang Facade Tidak memiliki referensi terkait hal itu
PPP Kolaborasi Klien berkomunikasi dengan subsistem dengan mengirimkan permintaan pada Facade, kemudian Facade yang akan mereruskan pesan tersebut pada subsistem yang tepat Klien yang menggunakan Facade tidak perlu mengakses subsistem secara langsung
Web Services
PPP
Web Services Contoh kode : FACADE
PPP Contoh Kode
Web Services
PPP Contoh Kode
Web Services
PPP
Web Services
PPP Contoh Kode
Web Services
PPP Contoh Kode
Web Services
PPP Contoh Kode
Web Services
PPP
Terimakasih v^^ Web Services
I’m with you till the end of the line