Thread View: be.comp.programming
4 messages
4 total messages
Started by Christian R
Mon, 29 Sep 2003 09:07
Generalisatierelatie
Author: Christian R
Date: Mon, 29 Sep 2003 09:07
Date: Mon, 29 Sep 2003 09:07
30 lines
2394 bytes
2394 bytes
Dag iedereen, Ik moet hier voor school een stuk cursus leren dat gaat over de Generalisatierelatie en het Liskov substitutie principe (LSP), maar ik snap het niet zo goed. Een bepaald stuk schrijft hier: Het Liskov substitutie principe voor instanties, stelt dat overal waar we een instantie van een superklasse kunnen gebruiken, we eveneens een instantie van een subklasse zouden kunnen gebruiken. Anders gezegd: een subklasse moet minstens de interface(s) van zijn superklasse(n) ondersteunen. Dit stukje begrijp ik heel goed. Eronder staat geschreven: We hebben eerder gezien dat een object steeds een (directe) instantie is van zijn voorbrengende klasse. Dit is iets wat ik denk te snappen. Maar wat ik maar niet kan snappen is het volgende: Door het LSP kunnen we een object echter ook als een (indirecte) instantie van alle superklassen van deze voortbrengende klasse beschouwen. Ook snap ik niet wat de toekenningen willen zeggen, dit zegt me: Het LSP is belangrijk bij toekenningen, waarvan er drie vormen bestaan. - Eenvoudige toekenning: LValue = RValue - Doorgeven van parameters aan een boodschap. - Teruggeven van een antwoord op een vraag. Meer heb ik er niet over. Heb ook al gezocht op het internet, maar dit maakt me ook niet wijzer. Kan me dit aub iemand uitleggen in gewone woorden? Alvast bedankt. Christian.
Re: Generalisatierelatie
Author: Gunter Schelfhout
Date: Mon, 29 Sep 2003 10:46
Date: Mon, 29 Sep 2003 10:46
45 lines
2922 bytes
2922 bytes
Christian R wrote: > Dag iedereen, > > Ik moet hier voor school een stuk cursus leren dat gaat over de > Generalisatierelatie en het Liskov substitutie principe (LSP), maar ik > snap het niet zo goed. > Een bepaald stuk schrijft hier: > Het Liskov substitutie principe voor instanties, stelt dat overal waar we > een instantie van een superklasse kunnen gebruiken, we eveneens een > instantie van een subklasse zouden kunnen gebruiken. Anders gezegd: een > subklasse moet minstens de interface(s) van zijn superklasse(n) > ondersteunen. > Dit stukje begrijp ik heel goed. Eronder staat geschreven: > We hebben eerder gezien dat een object steeds een (directe) instantie is > van zijn voorbrengende klasse. > Dit is iets wat ik denk te snappen. Maar wat ik maar niet kan snappen is > het volgende: > Door het LSP kunnen we een object echter ook als een (indirecte) instantie > van alle superklassen van deze voortbrengende klasse beschouwen. Bedoelt men niet de 'is-a '-relaties? Ik vermoed dat men bedoelt, dat men aan een pointer (bv baseclass *Ptr) een object van een derived class kan toewijzen. bv baseclass *Ptr = new derived_object Dit is toegelaten omdat een object van een derived class ook te beschouwen is als een object van de baseclass. (baseclass == superclass && derived class == subclass) > Ook snap ik niet wat de toekenningen willen zeggen, dit zegt me: > Het LSP is belangrijk bij toekenningen, waarvan er drie vormen bestaan. > - Eenvoudige toekenning: LValue = RValue > - Doorgeven van parameters aan een boodschap. > - Teruggeven van een antwoord op een vraag. > > Meer heb ik er niet over. Heb ook al gezocht op het internet, maar dit > maakt me ook niet wijzer. > Kan me dit aub iemand uitleggen in gewone woorden? > Alvast bedankt. > > Christian. -- Blood, sweat & tears
Re: Generalisatierelatie
Author: Roel Schroeven
Date: Mon, 29 Sep 2003 11:08
Date: Mon, 29 Sep 2003 11:08
46 lines
2814 bytes
2814 bytes
On Mon, 29 Sep 2003 11:07:47 +0200, Christian R wrote: > Dag iedereen, > > Ik moet hier voor school een stuk cursus leren dat gaat over de > Generalisatierelatie en het Liskov substitutie principe (LSP), maar ik > snap het niet zo goed. > Een bepaald stuk schrijft hier: > Het Liskov substitutie principe voor instanties, stelt dat overal waar > we een instantie van een superklasse kunnen gebruiken, we eveneens een > instantie van een subklasse zouden kunnen gebruiken. Anders gezegd: een > subklasse moet minstens de interface(s) van zijn superklasse(n) > ondersteunen. > Dit stukje begrijp ik heel goed. Eronder staat geschreven: We hebben > eerder gezien dat een object steeds een (directe) instantie is van zijn > voorbrengende klasse. > Dit is iets wat ik denk te snappen. Maar wat ik maar niet kan snappen is > het volgende: > Door het LSP kunnen we een object echter ook als een (indirecte) > instantie van alle superklassen van deze voortbrengende klasse > beschouwen. Stel we hebben een klasse A, daarvan afgeleid een klasse B, en daar nog eens van afgeleid een klasse C. c is een object, een directe instantie van klasse C. Dan is c ook een indirecte instantie van klassen B en A. > Ook snap ik niet wat de toekenningen willen zeggen, dit zegt > me: Het LSP is belangrijk bij toekenningen, waarvan er drie vormen > bestaan. > - Eenvoudige toekenning: LValue = RValue Twee objecten a en b, je kent de waarde van a toe aan b. b = a in C++. > - Doorgeven van parameters aan een boodschap. In C++: object->func(a) > - Teruggeven van een antwoord op een vraag. Weerom in C++: b = object->func(a) -- "Codito ergo sum" Roel Schroeven
Re: Generalisatierelatie
Author: Christian R
Date: Wed, 01 Oct 2003 07:41
Date: Wed, 01 Oct 2003 07:41
3 lines
1144 bytes
1144 bytes
Heel vriendelijk bedankt voor het antwoord. Christian.
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