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

Post on 19-May-2019

248 views 0 download

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

Structural

Pattern

Composite

Design

Pattern

Adam Hendra Brata

PPP Tujuan Perkuliahan

Memahami structural pattern : Composite

PPP

Composite

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

Motivasi (1)

PPP Composite

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

Motivasi (2)

PPP Composite

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

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

Struktur

PPP Composite

Composite

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

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

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

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

PPP

Contoh kode :

Composite

Factory Method

Factory Method

Factory Method

Factory Method

Factory Method

Factory Method

Factory Method

Factory Method

Factory Method

Factory Method

Factory Method

Factory Method

Factory Method

Factory Method

Web Services

Terimakasih

v^^

PPP

I’m with you tillthe end of the line