🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.objects
1 messages
1 total messages Started by Jan.P... Jan Ploski Sun, 07 Jul 1996 00:00
(none)
#281
Author: Jan.P... Jan Ploski
Date: Sun, 07 Jul 1996 00:00
88 lines
2850 bytes
Oto jeszcze kilka uwag dotyczacych dziedziczenia wirtualnego. Ponizej 
przedstawiam kilka mniej lub bardziej abstrakcyjnych przykladow 
zastosowania tego mechanizmu.

Najpierw definiujemy sobie klase Litera:

   Litera

Pozniej mamy klasy Iksow, Igrekow i Zetow, ktore sa literami. Normalna 
sprawa, wyprowadzamy je z klasy Litera:

   Iks   : Litera
   Igrek : Litera
   Zet   : Litera

A teraz - uwaga - chcemy miec zielonego Iksa. Od razu przychodzi nam
do glowy proste rozwiazanie:

   zielony Iks : Iks

I to jest wlasnie miejsce do zatrzymania sie i przemyslenia hierarchii
klas, czyli postawienia sobie pytania: 

czego bedzie dokladnie dotyczyl atrybut "zielony"?

Jezeli tylko Iksow, to hierarchia jest w porzadku. Jezeli takze innych 
Liter, to nalezy zastosowac dziedziczenie wirtualne, czyli:

Litera

Iks       : virtual Litera     
Igrek     : virtual Litera
Zet       : virtual Litera

zielony   : virtual Litera
czerwony  : virtual Litera
zloty     : virtual Litera

zloty Iks   : zloty, Iks
zielony Iks : zielony, Iks
zloty Igrek : zloty, Igrek

i tak dalej.


Jesli chodzi o sekretarki, rozwiazanie podane przez Kube jest rownie naturalne:

Employee
Secretary : virtual Employee
Permanent : virtual Employee       
Temporary : virtual Employee

Permanent Secretary : Permanent, Secretary
Temporary Secretary : Temporary, Secretary

Poniewaz nie trudno przewidziec, ze atrybut "Permanent" nie bedzie dotyczyl
tylko sekretarek, tylko w ogole pracownikow, stosujemy w tej sytuacji
dziedziczenie wirtualne. Chetnie zapoznalbym sie z bardziej szczegolowym
opisem problemu, jaki miala znajoma Kuby Chabika z powyzsza hierarchia klas.

Powrocmy jeszcze do koni (ostatni raz):

Zwierze
Kon        : virtual Zwierze
Wyscigowe  : virtual Zwierze
Miesne     : virtual Zwierze

Kon Wyscigowy : Wyscigowe, Zwierze
Kon Miesny    : Miesne, Zwierze

Niezupelnie sie zgadzam z opinia Kuby, ze myslenie o tym, co bedzie 
z dana klasa robione nizej w hierarchii, jest "nie do przyjecia".
Proponuje, aby kwestie dziedziczenia wirtualnego sprowadzac do dosc 
mechanicznego postepowania:

1) Juz przy definiowaniu klasy-przedmiotu - myslec o ATRYBUTACH, ktore 
   moga byc do niej dodane.

2) Przy definiowaniu atrybutow - myslec o KLASACH-PRZEDMIOTACH, ktorych
   owe atrybuty moga dotyczyc.

                                                JPL                     





Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads