Penahanan/Delegasi

Mekanisme yang paling umum untuk penggunaan kembali objek dalam COM adalah penahanan/delegasi. Jenis penggunaan kembali ini adalah konsep yang familier yang ditemukan dalam sebagian besar bahasa dan sistem berorientasi objek. Objek luar, yang perlu menggunakan objek dalam, bertindak sebagai klien objek ke objek dalam. Objek luar "berisi" objek dalam, dan ketika objek luar memerlukan layanan objek dalam, objek luar secara eksplisit mendelegasikan implementasi ke metode objek dalam. Artinya, objek luar menggunakan layanan objek dalam untuk mengimplementasikan dirinya sendiri.

Tidak perlu bagi objek luar dan dalam untuk mendukung antarmuka yang sama, meskipun tentu wajar untuk berisi objek yang mengimplementasikan antarmuka yang tidak dilakukan objek luar dan menerapkan metode objek luar hanya sebagai panggilan ke metode yang sesuai di objek dalam. Namun, ketika kompleksitas objek luar dan dalam sangat berbeda, namun, objek luar dapat mengimplementasikan beberapa metode antarmukanya dengan mendelegasikan panggilan ke metode antarmuka yang diterapkan di objek dalam.

Sangat mudah untuk mengimplementasikan penahanan untuk objek luar. Objek luar membuat objek dalam yang perlu digunakannya seperti yang dilakukan klien lain. Ini bukan hal baru—prosesnya seperti objek C++ yang berisi objek string C++ yang digunakannya untuk melakukan fungsi string tertentu, bahkan jika objek luar tidak dianggap sebagai objek string dengan haknya sendiri. Kemudian, menggunakan penunjuknya ke objek dalam, panggilan ke metode di objek luar menghasilkan panggilan ke metode objek dalam.

Agregasi