Sopimuspohjainen olio-ohjelmointi
Sopimuspohjainen olio-ohjelmointi 2008-04-01 2008-04-01
(c) 2006-2008 Jouni Smed
(c) 2006-2008 Jouni Smed 1 1
Esimerkki:
Esimerkki:
SuunnattuGraafi SuunnattuGraafi
Suunnattu graafi Suunnattu graafi GG = ( = (VV, , EE))
solmujoukko solmujoukko VV
kaarijoukko kaarijoukko EE
Kaareen liittyyKaareen liittyy
lähtösolmulähtösolmu
tulosolmutulosolmu
painopaino
Luokka
Luokka Solmu Solmu
Solmut leimataan merkkijonoillaSolmut leimataan merkkijonoilla
Solmuja käsitellään leimojenSolmuja käsitellään leimojen kautta
kautta
Kahden solmun samuusKahden solmun samuus määräytyy niiden leimoista määräytyy niiden leimoista
Luokka
Luokka Kaari Kaari
Käyttää hyväksi Käyttää hyväksi SolmuSolmu-luokkaa-luokkaa
Lähtö- ja tulosolmua ei voiLähtö- ja tulosolmua ei voi muuttaa luonnin jälkeen muuttaa luonnin jälkeen
Luokat
Luokat Solmujoukko Solmujoukko ja ja Kaarijoukko
Kaarijoukko
Havainto-operaatiot delegoidaanHavainto-operaatiot delegoidaan sisäisen esityksen
sisäisen esityksen SetSet-- kokoelmalle
kokoelmalle
Julkinen liitäntä käyttääJulkinen liitäntä käyttää solmujen leimoja
solmujen leimoja
Operaatiot on toteutettuOperaatiot on toteutettu funktionaalisesti
funktionaalisesti
Luokka
Luokka SuunnattuGraafi SuunnattuGraafi
Poistettavaan solmuun ei saaPoistettavaan solmuun ei saa liittyä kaaria
liittyä kaaria
Solmuihin viitataan aina leimoillaSolmuihin viitataan aina leimoilla
Luokkarakenne Luokkarakenne
SuunnattuGraafi
SuunnattuGraafi SolmujoukkoSolmujoukko
String String Set<Solmu>
Set<Solmu>
Kaarijoukko
Kaarijoukko Set<Kaari>Set<Kaari> KaariKaari SolmuSolmu
Sopimuspohjainen olio-ohjelmointi
Sopimuspohjainen olio-ohjelmointi 2008-04-01 2008-04-01
(c) 2006-2008 Jouni Smed
(c) 2006-2008 Jouni Smed 2 2
Esimerkki:
Esimerkki: Graafi Graafi
Tarvitaanko oma luokkaTarvitaanko oma luokka
solmullesolmulle
solmujoukollesolmujoukolle
kaarijoukollekaarijoukolle
Voidaanko käyttää hyväksiVoidaanko käyttää hyväksi
sisäluokkiasisäluokkia
geneerisyyttägeneerisyyttä