Top Banner
A dapter & Facade Design Pattern Adam Hendra Brata
43

Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

Mar 25, 2019

Download

Documents

trankiet
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

Adapter &

Facade

Design

Pattern

Adam Hendra Brata

Page 2: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Tujuan Perkuliahan

Memahami structural pattern: Adapter

Memahami structural pattern: Facade

Page 3: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

Web Services

PPP

ADAPTER

Page 4: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Introduksi

Perjalanan ke tempat yang jauh di seberang lautan

Page 5: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Introduksi

Page 6: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP Introduksi

Page 7: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP Introduksi

Handphone Low Battery

Page 8: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP Introduksi

Mau nge-charge HandphoneTapi colokan listriknya nggak sama

Page 9: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

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

Dikenal juga dengan nama Wrapper

Page 10: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP Motivasi

Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai

Antarmuka yang disediakan tidak sama dengan kode yang sudah kita tulis

Adapter mengimplementasikan antarmuka yang dipakai oleh klas yang kita buat dan adapter dapat “menyambungkan” permintaan kita dengan antarmuka dari vendor agar tetap dapat terlayani

Dapat berkomunikasi tanpa harus merubah kode sistem kita ataupun kode dari sistem lain, kita hanya butuh menulis kode baru untuk “menerjemahkan”

Page 11: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

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

Bahkan jika kita memiliki kode sumbernya, kita tidak harus mengubah kode dalam libraryuntuk setiap aplikasi yang spesifikkarena hal ini sangat tidak efisien

Page 12: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

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

Page 13: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Struktur

Page 14: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Struktur

Page 15: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Unsur

Target

mendefinisikan antarmuka spesifik yang digunakan Client

Client

bekerja sama dengan objek – objek yang sesuai dengan antarmuka Target

Adaptee

mendefinisikan sebuah antarmuka yang sudah ada dan yang perlu beradaptasi

Adapter

menyesuaikan antarmuka Adaptee untuk antarmuka Target

Page 16: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

Web Services

PPP

Contoh kode :

ADAPTER

Page 17: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 18: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 19: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 20: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 21: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 22: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 23: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 24: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

Web Services

PPP

FACADE

Page 25: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

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

Page 26: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP Introduksi

Pernahkah kita mengkhayal punya sebuah “remote ajaib”yang bisa membantu kita menyelesaikan tugas-tugas dengan sekali tekan saja

Page 27: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Facade

Tujuan

Menyediakan antarmuka yang seragam untuk satu set antarmuka dalam sebuah subsistem

Facade mendefinisikan antarmuka tingkat tinggi yang membuat subsistem lebih mudah digunakan

Page 28: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP Motivasi

Page 29: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP Motivasi

Terdiri dari banyak klas dan banyak juga interaksinya serta ada 1 set antarmuka yang besar untuk dipakai dan dipelajari

Page 30: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP Motivasi

Page 31: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP Motivasi

Page 32: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

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 memisahkansubsistem tersebut dari klien dan dari subsistem yang lain, sehingga meningkatkan tingkat independen dan portabilitas dari subsistem

Kita ingin membuat “lapisan” atau tingkatan dari subsistem kita

Kita dapat menggunakan facade untuk menentukan “entry point” dari setiap tingkatan subsistem

Page 33: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Struktur

Page 34: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Unsur

Facade

Mengetahui klas subsistem mana yang bertanggung jawabterhadap sebuah permintaan

Mendelegasikan permintaan klien pada subsistem yang tepat

Subsystem Classes

Mengimplementasikan fungsionalitas dari subsistem

Menangani pekerjaan yang “ditugaskan” oleh Facade

Tidak memiliki pengetahuan tentang Facade

Tidak memiliki referensi terkait hal itu

Page 35: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

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

Page 36: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

Web Services

PPP

Contoh kode :

FACADE

Page 37: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 38: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 39: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Page 40: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 41: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 42: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

PPP

Web Services

Contoh Kode

Page 43: Design Pattern - adamhendrabrata.files.wordpress.com · Dikenal juga dengan nama Wrapper. PPP Motivasi Lubang colokan stopkontak yang tidak sama dengan tipe colokan yang dipakai Antarmuka

Web Services

Terimakasih

v^^

PPP

I’m with you tillthe end of the line