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
Top Related