Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Najczęstszym mechanizmem ponownego użycia obiektu w modelu COM jest zawieranie/delegowanie. Ten typ ponownego użycia jest znanym pojęciem występującym w większości języków i systemów zorientowanych na obiekty. Obiekt zewnętrzny, który musi używać obiektu wewnętrznego, działa jako klient obiektu wewnętrznego do obiektu wewnętrznego. Obiekt zewnętrzny "zawiera" obiekt wewnętrzny, a gdy obiekt zewnętrzny wymaga usług obiektu wewnętrznego, obiekt zewnętrzny jawnie deleguje implementację do metod obiektu wewnętrznego. Oznacza to, że obiekt zewnętrzny używa usług obiektu wewnętrznego do zaimplementowania samego siebie.
Nie jest konieczne, aby obiekty zewnętrzne i wewnętrzne obsługiwały te same interfejsy, chociaż z pewnością rozsądnie jest zawierać obiekt implementujący interfejs, którego obiekt zewnętrzny nie obsługuje i implementuje metody obiektu zewnętrznego po prostu jako wywołania odpowiednich metod w obiekcie wewnętrznym. Gdy złożoność obiektów zewnętrznych i wewnętrznych znacznie się różni, jednak obiekt zewnętrzny może zaimplementować niektóre metody interfejsów przez delegowanie wywołań do metod interfejsu zaimplementowanych w obiekcie wewnętrznym.
Zaimplementowanie zawierania dla obiektu zewnętrznego jest proste. Obiekt zewnętrzny tworzy obiekty wewnętrzne, których musi używać jak każdy inny klient. To nic nowego — proces jest jak obiekt języka C++, który sam zawiera obiekt ciągu języka C++, którego używa do wykonywania pewnych funkcji ciągów, nawet jeśli obiekt zewnętrzny nie jest traktowany jako obiekt ciągu samodzielnie. Następnie, używając wskaźnika do obiektu wewnętrznego, wywołanie metody w obiekcie zewnętrznym generuje wywołanie metody do metody wewnętrznej.
Tematy pokrewne