Component Object Model
Component Object Model (COM) platformovo nezávislý, distribuovaný, objektovo-orientovaný systém pre vytváranie binárnych softvérových komponentov, ktoré sú schopné spolupracovať, uvedený spoločnosťou Microsoft v roku 1993. COM je technológia, na ktorej sú postavené technológie OLE, OLE Automation, ActiveX, COM+ and DCOM.
Prehľad
Podstatou technológie COM je jazykovo nezávislý spôsob implementovania objektov, ktoré môžu byť použité aj v iných prostrediach ako boli vytvorené, dokonca za hranicami jednotlivých počítačov. Ak sú komponenty správne napísané, COM umožňuje používanie objektov bez znalosti ich vnútornej implementácie, čo zároveň núti autorov jednotlivých komponentov poskytovať správne definované rozhrania, ktoré sú oddelené od implementácie. Problém odlišných sémantík alokovania pamäti v rôznych jazykoch je vyriešený tým, že každý objekt je zodpovedný za svoje vytváranie a rušenie pomocou počítania referencií (tzv. reference-couting). Pretypovanie medzi rôznymi rozhraniami objektu zabezpečuje funkcia QueryInterface()
. Dedičnosť v rámci COM je vyriešená vytváraním takzvaných pod-objektov, ktorým sú následne odovzdávané volania metód z ich nad-objektov.