Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Kjerneprinsipper for Komposisjon | Seksjon
Objektorientert Programmering i Python

bookKjerneprinsipper for Komposisjon

Komposisjon fokuserer på å bygge komplekse objekter ved å kombinere enklere, uavhengige komponenter. I stedet for å basere seg på arv, som skaper rigide hierarkier, lar komposisjon klasser samarbeide gjennom inneholdte objekter. Denne tilnærmingen gjør systemer mer fleksible, modulære og enklere å vedlikeholde, siden komponenter kan byttes ut eller utvides uten å ødelegge hele strukturen.

example.py

example.py

copy

Order implementerer ikke selv logikk for betaling, lager eller frakt. I stedet har den separate objekter (Payment, Inventory, Shipping) og bruker dem for å utføre sitt arbeid.

Hver komponent har ett ansvar, og Order koordinerer bare disse. Hvis du ønsker å endre hvordan betaling eller frakt fungerer, kan du bytte ut komponenten uten å endre Order-klassen.

Noen fallgruver å være oppmerksom på ved bruk av komposisjon er å lage gud-objekter som samler for mange komponenter og blir vanskelige å håndtere, lekkasje av komponent-API-er gjennom den ytre klassen i stedet for å holde et rent grensesnitt, og å introdusere skjult kobling når komponenter blir for avhengige av hverandres interne detaljer.

Gud-objekter
expand arrow

Et gud-objekt forsøker å gjøre for mye. Det inneholder mange komponenter og håndterer mange ansvarsområder, noe som gjør klassen vanskelig å forstå, teste og vedlikeholde.

Lekkasjer i komponent-API-er
expand arrow

Dette skjer når den ytre klassen eksponerer de interne metodene eller attributtene til sine komponenter. I stedet for å tilby et eget ryddig grensesnitt, tvinger den brukere til å samhandle direkte med interne objekter.

Skjult kobling
expand arrow

Komponenter blir tett koblet sammen gjennom interne detaljer. Endringer i én del fører uventet til feil i en annen fordi de er avhengige av hverandres interne struktur i stedet for tydelige kontrakter.

question mark

Hva er en vanlig risiko ved bruk av komposisjon som kan gjøre designet vanskeligere å vedlikeholde?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 16

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

bookKjerneprinsipper for Komposisjon

Sveip for å vise menyen

Komposisjon fokuserer på å bygge komplekse objekter ved å kombinere enklere, uavhengige komponenter. I stedet for å basere seg på arv, som skaper rigide hierarkier, lar komposisjon klasser samarbeide gjennom inneholdte objekter. Denne tilnærmingen gjør systemer mer fleksible, modulære og enklere å vedlikeholde, siden komponenter kan byttes ut eller utvides uten å ødelegge hele strukturen.

example.py

example.py

copy

Order implementerer ikke selv logikk for betaling, lager eller frakt. I stedet har den separate objekter (Payment, Inventory, Shipping) og bruker dem for å utføre sitt arbeid.

Hver komponent har ett ansvar, og Order koordinerer bare disse. Hvis du ønsker å endre hvordan betaling eller frakt fungerer, kan du bytte ut komponenten uten å endre Order-klassen.

Noen fallgruver å være oppmerksom på ved bruk av komposisjon er å lage gud-objekter som samler for mange komponenter og blir vanskelige å håndtere, lekkasje av komponent-API-er gjennom den ytre klassen i stedet for å holde et rent grensesnitt, og å introdusere skjult kobling når komponenter blir for avhengige av hverandres interne detaljer.

Gud-objekter
expand arrow

Et gud-objekt forsøker å gjøre for mye. Det inneholder mange komponenter og håndterer mange ansvarsområder, noe som gjør klassen vanskelig å forstå, teste og vedlikeholde.

Lekkasjer i komponent-API-er
expand arrow

Dette skjer når den ytre klassen eksponerer de interne metodene eller attributtene til sine komponenter. I stedet for å tilby et eget ryddig grensesnitt, tvinger den brukere til å samhandle direkte med interne objekter.

Skjult kobling
expand arrow

Komponenter blir tett koblet sammen gjennom interne detaljer. Endringer i én del fører uventet til feil i en annen fordi de er avhengige av hverandres interne struktur i stedet for tydelige kontrakter.

question mark

Hva er en vanlig risiko ved bruk av komposisjon som kan gjøre designet vanskeligere å vedlikeholde?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 16
some-alt