Saya mengerti komposisi apa yang ada dalam OOP, tetapi saya tidak bisa mendapatkan gambaran yang jelas tentang apa itu Agregasi. Bisakah seseorang menjelaskan?
object-oriented
Vinoth Kumar CM
sumber
sumber
Dari http://en.wikipedia.org/wiki/Object_composition
Jadi - selagi Anda memiliki hubungan kepemilikan dengan komposisi, objek yang dimiliki juga dihancurkan ketika pemiliknya adalah - agregasi (dan objek yang terkandung) dapat eksis secara independen.
-
Pembaruan: Permintaan Maaf - jawaban ini terlalu sederhana di belakang.
c.batt memberikan definisi yang sangat baik dalam jawabannya: Agregasi vs Komposisi
sumber
Tidak ada penjelasan tunggal. Para penulis yang berbeda memiliki arti yang berbeda dengan agregasi. Sebagian besar tidak benar-benar berarti sesuatu yang spesifik.
sumber
Komposisi adalah sebuah Asosiasi
Agregasi adalah sebuah Asosiasi
Komposisi adalah Asosiasi yang kuat (Jika kehidupan objek yang terkandung sepenuhnya tergantung pada objek kontainer, itu disebut asosiasi yang kuat)
Agregasi adalah Asosiasi yang lemah (Jika kehidupan objek yang terkandung tidak tergantung pada objek wadah, itu disebut asosiasi yang lemah)
Contoh:
sumber
Komposisi (campuran) adalah cara untuk menggabungkan objek sederhana atau tipe data menjadi yang lebih kompleks. Komposisi adalah blok bangunan penting dari banyak struktur data dasar
Pengumpulan (pengumpulan) berbeda dari komposisi biasa karena tidak menyiratkan kepemilikan. Dalam komposisi, ketika benda yang dimiliki dihancurkan, demikian pula benda yang terkandung. Secara agregasi, ini belum tentu benar
Keduanya menunjukkan hubungan antara objek dan hanya berbeda dalam kekuatannya.
Notasi UML untuk berbagai jenis ketergantungan antara dua kelas
Komposisi : Karena Mesin adalah bagian dari Mobil, hubungan di antara mereka adalah Komposisi. Inilah cara mereka diimplementasikan di antara kelas-kelas Java.
Agregasi : Karena Organisasi memiliki Orang sebagai karyawan, hubungan di antara mereka adalah Agregasi. Berikut adalah bagaimana mereka terlihat dalam hal kelas Java
Sumber
sumber
agregasi adalah koleksi sederhana, seperti sekantong kelereng
komposisi menyiratkan dependensi internal / fungsional, seperti engsel pada kotak
mobil penumpang agregat; mereka masuk dan keluar tanpa merusak fungsi mobil
ban adalah komponen; lepaskan satu dan mobil tidak lagi berfungsi dengan benar
[catatan: ban serepnya agregat!]
sumber
Saya selalu melihat komposisi sebagai 'kebutuhan a', yaitu mobil membutuhkan mesin, dan saya melihat agregasi sebagai 'hal-hal yang terkait dengan suatu tujuan'. Jadi tetap dengan analogi mobil, agregasi saya mungkin mewakili perjalanan yang mungkin melibatkan menyatukan mobil dan penumpang. Perjalanan tidak memiliki mobil atau penumpang, saya mengumpulkan data yang terkait dengan skenario tertentu. Ketika perjalanan selesai, mobil dan penumpang melanjutkan. Ketika sebuah mobil berakhir, mobil dan mesinnya biasanya dihancurkan bersama.
sumber
Semantik, semua set terbuat dari himpunan bagian, kan? Karena itu:
Agregasinya adalah ketika himpunan bagian itu ada secara independen dari set ayah. Sebagai monitor dapat dicabut dari komputer untuk dihubungkan ke yang lain.
Komposisi adalah ketika himpunan bagian itu tergantung dari keberadaan set ayah. Seperti daun adalah bagian dari pohon atau hati adalah bagian dari tubuh.
Konsep-konsep ini berbicara tentang jenis ketergantungan antara dua objek atau kelas, secara konseptual. Langsung dalam suatu program, dalam suatu agregasi, ketika objek ayah membuang, objek agregat juga harus dibuang. Dalam skenario yang sama untuk komposisi, objek anak komposit akan bertahan kemudian objek ayah mengeluarkan.
sumber
Bagaimana dengan contoh sederhana ini:
Array objek adalah komposisi. Array pointer ke objek adalah agregasi.
Jika saya menghapus yang pertama, isinya lenyap bersamanya. Yang kedua, di sisi lain dapat menghilang tanpa mempengaruhi keberadaan anggotanya kecuali ada metode khusus yang menghapus setiap objek saat penunjuknya dihapus.
sumber