Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Koostamisen Ydinperiaatteet | Osio
Olio-ohjelmointi Pythonissa

bookKoostamisen Ydinperiaatteet

Koostaminen keskittyy monimutkaisten olioiden rakentamiseen yhdistämällä yksinkertaisempia, itsenäisiä komponentteja. Perinnän sijaan, joka luo jäykkiä hierarkioita, koostaminen mahdollistaa luokkien yhteistyön sisäkkäisten olioiden kautta. Tämä lähestymistapa tekee järjestelmistä joustavampia, modulaarisempia ja helpommin ylläpidettäviä, koska komponentteja voidaan korvata tai laajentaa rikkomatta koko rakennetta.

example.py

example.py

copy

Order ei toteuta maksun, varaston tai toimituksen logiikkaa itse. Sen sijaan sillä on erilliset oliot (Payment, Inventory, Shipping), joita se käyttää työnsä suorittamiseen.

Jokaisella komponentilla on yksi vastuualue, ja Order ainoastaan koordinoi niitä. Jos haluat muuttaa maksun tai toimituksen toimintaa, voit korvata komponentin ilman, että Order-luokkaa tarvitsee muokata.

Muutamia sudenkuoppia koostamista käytettäessä ovat jumalaolioiden luominen, jotka keräävät liikaa komponentteja ja muuttuvat vaikeasti hallittaviksi, komponenttien rajapintojen vuotaminen ulkoisen luokan kautta sen sijaan, että pidettäisiin selkeä rajapinta, sekä piilotetun kytkennän syntyminen, kun komponentit ovat liikaa riippuvaisia toistensa sisäisistä yksityiskohdista.

Jumalaoliot
expand arrow

Jumala-olio yrittää tehdä liikaa. Se sisältää monia komponentteja ja hoitaa useita vastuita, mikä tekee luokasta vaikeasti ymmärrettävän, testattavan ja ylläpidettävän.

Komponenttien API:en vuotaminen
expand arrow

Tämä tapahtuu, kun ulkoinen luokka paljastaa komponenttiensa sisäiset metodit tai attribuutit. Sen sijaan, että se tarjoaisi oman selkeän rajapintansa, se pakottaa käyttäjät vuorovaikuttamaan sisäisten olioiden kanssa suoraan.

Piilotettu kytkentä
expand arrow

Komponentit kytkeytyvät tiiviisti toisiinsa sisäisten yksityiskohtien kautta. Yhden osan muuttaminen rikkoo odottamatta toisen, koska ne ovat riippuvaisia toistensa sisäisestä rakenteesta selkeiden sopimusten sijaan.

question mark

Mikä on yleinen riski koostamista käytettäessä, joka voi tehdä suunnittelusta vaikeammin ylläpidettävän?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 16

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

bookKoostamisen Ydinperiaatteet

Pyyhkäise näyttääksesi valikon

Koostaminen keskittyy monimutkaisten olioiden rakentamiseen yhdistämällä yksinkertaisempia, itsenäisiä komponentteja. Perinnän sijaan, joka luo jäykkiä hierarkioita, koostaminen mahdollistaa luokkien yhteistyön sisäkkäisten olioiden kautta. Tämä lähestymistapa tekee järjestelmistä joustavampia, modulaarisempia ja helpommin ylläpidettäviä, koska komponentteja voidaan korvata tai laajentaa rikkomatta koko rakennetta.

example.py

example.py

copy

Order ei toteuta maksun, varaston tai toimituksen logiikkaa itse. Sen sijaan sillä on erilliset oliot (Payment, Inventory, Shipping), joita se käyttää työnsä suorittamiseen.

Jokaisella komponentilla on yksi vastuualue, ja Order ainoastaan koordinoi niitä. Jos haluat muuttaa maksun tai toimituksen toimintaa, voit korvata komponentin ilman, että Order-luokkaa tarvitsee muokata.

Muutamia sudenkuoppia koostamista käytettäessä ovat jumalaolioiden luominen, jotka keräävät liikaa komponentteja ja muuttuvat vaikeasti hallittaviksi, komponenttien rajapintojen vuotaminen ulkoisen luokan kautta sen sijaan, että pidettäisiin selkeä rajapinta, sekä piilotetun kytkennän syntyminen, kun komponentit ovat liikaa riippuvaisia toistensa sisäisistä yksityiskohdista.

Jumalaoliot
expand arrow

Jumala-olio yrittää tehdä liikaa. Se sisältää monia komponentteja ja hoitaa useita vastuita, mikä tekee luokasta vaikeasti ymmärrettävän, testattavan ja ylläpidettävän.

Komponenttien API:en vuotaminen
expand arrow

Tämä tapahtuu, kun ulkoinen luokka paljastaa komponenttiensa sisäiset metodit tai attribuutit. Sen sijaan, että se tarjoaisi oman selkeän rajapintansa, se pakottaa käyttäjät vuorovaikuttamaan sisäisten olioiden kanssa suoraan.

Piilotettu kytkentä
expand arrow

Komponentit kytkeytyvät tiiviisti toisiinsa sisäisten yksityiskohtien kautta. Yhden osan muuttaminen rikkoo odottamatta toisen, koska ne ovat riippuvaisia toistensa sisäisestä rakenteesta selkeiden sopimusten sijaan.

question mark

Mikä on yleinen riski koostamista käytettäessä, joka voi tehdä suunnittelusta vaikeammin ylläpidettävän?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 16
some-alt