🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
4 messages
4 total messages Started by Christian R Mon, 29 Sep 2003 09:07
Generalisatierelatie
#3891
Author: Christian R
Date: Mon, 29 Sep 2003 09:07
30 lines
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
#3893
Author: Gunter Schelfhout
Date: Mon, 29 Sep 2003 10:46
45 lines
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
#3894
Author: Roel Schroeven
Date: Mon, 29 Sep 2003 11:08
46 lines
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
#3902
Author: Christian R
Date: Wed, 01 Oct 2003 07:41
3 lines
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