Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek...

29
S tructural Pattern C omposite Design Pattern Adam Hendra Brata

Transcript of Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek...

Page 1: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Structural

Pattern

Composite

Design

Pattern

Adam Hendra Brata

Page 2: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

PPP Tujuan Perkuliahan

Memahami structural pattern : Composite

Page 3: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

PPP

Composite

Page 4: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Tujuan

Menyusun beberapa objek ke dalam diagram pohon untuk menggambarkan hirarki dari bagian-bagiannya

Composite memungkinkan klien memperlakukan tiap objek individu ataupun objek – objek yang menyusunnya secara seragam

PPP Composite

Page 5: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Motivasi (1)

PPP Composite

Kita ingin menggambarkan struktur menu di restoran, secara alami dan paling mudah kita gambarkan dalam diagram pohon

Page 6: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Motivasi (2)

PPP Composite

Kita perlu mengunjungi setiap node dari tree untuk “mengakses” menu dan mendapatkan hasil yang benar

Page 7: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Pemakaian / Applicability

Kita ingin menggambarkan bagian – bagian dari sebuah objek dengan penggambaran hirarkis secara lengkap

Kita ingin klien dapat “mengabaikan” perbedaan antara objek penyusun / komposit dan objek individu klien akan memperlakukan semua objek dalam struktur komposit dengan seragam

PPP Composite

Page 8: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Struktur

PPP Composite

Page 9: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Composite

Page 10: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Partisipan / Penyusun

Component

menyatakan antarmuka untuk objek dalam komposisi

mengimplementasikan perilaku default untuk antarmuka umum pada semua kelas

Mendefinisikan sebuah antarmuka untuk mengakses dan mengelola komponen-komponen anaknya

(Opsional) Mendefinisikan antarmuka untuk mengakses orangtua dari Component dalam struktur rekursif dan mengimplementasikannya jika itu sesuai

Leaf

Merupakan objek daun dalam komposisi sebuah daun tidak memiliki anak

Mendefinisikan perilaku untuk objek primitif dalam komposisi

PPP Factory Method

Page 11: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Partisipan / Penyusun

Composite

Mendefinisikan perilaku untuk komponen yang memiliki anak

Dapat “menyimpan” komponen anak

Mengimplementasikan operasi yang berhubungan dengan komponen anak di antarmuka Component

Client

Memanipulasi objek dalam komposisi melalui antarmuka Component

PPP Factory Method

Page 12: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Kolaborasi

Client menggunakan antarmuka kelas Component untuk berinteraksi dengan objek – objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain)

Jika penerima adalah Leaf, maka permintaan akan ditangani langsung

Jika tidak, maka biasanya permintaan akan diteruskan kepada komponen anaknya, bisa jadi melakukan operasi tambahan saat sebelum dan / atau setelah forwarding

PPP Factory Method

Page 13: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Konsekuensi

Mendefinisikan hierarki kelas yang terdiri dari objek primitif dan objek komposit (objek penyusun)

Membuat klien sederhana tidak tahu apakah itu Leaf atau Composite yang akan meng-handle

Membuat penambahan jenis komponen baru menjadi lebih mudah Klien tidak perlu mengubah langsung

Kerugian

Dapat membuat desain yang dirancang menjadi terlalu umum

PPP Factory Method

Page 14: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

PPP

Contoh kode :

Composite

Page 15: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 16: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 17: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 18: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 19: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 20: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 21: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 22: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 23: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 24: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 25: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 26: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 27: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 28: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Factory Method

Page 29: Structural Pattern - adamhendrabrata.files.wordpress.com · berinteraksi dengan objek –objek dalam struktur komposit (objek-objek yang menyusun sebuah objek yang lain) Jika penerima

Web Services

Terimakasih

v^^

PPP

I’m with you tillthe end of the line