Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Kerneprincipper for Komposition | Sektion
Practice
Projects
Quizzes & Challenges
Quizzer
Challenges
/
Objektorienteret Programmering i Python

bookKerneprincipper for Komposition

Sammensætning fokuserer på at opbygge komplekse objekter ved at kombinere enklere, uafhængige komponenter. I stedet for at benytte arv, som skaber stive hierarkier, tillader sammensætning klasser at samarbejde gennem indeholdte objekter. Denne tilgang gør systemer mere fleksible, modulære og nemmere at vedligeholde, da komponenter kan udskiftes eller udvides uden at ødelægge hele strukturen.

example.py

example.py

copy

Order implementerer ikke selv betalings-, lager- eller forsendelseslogik. I stedet har den separate objekter (Payment, Inventory, Shipping) og bruger dem til at udføre sit arbejde.

Hver komponent har ét ansvar, og Order koordinerer blot disse. Hvis du ønsker at ændre, hvordan betaling eller forsendelse fungerer, kan du udskifte komponenten uden at ændre Order-klassen.

Et par faldgruber ved brug af sammensætning er at skabe gud-objekter, der samler for mange komponenter og bliver svære at håndtere, lækage af komponent-API'er gennem den ydre klasse i stedet for at bevare et rent interface, samt at introducere skjult kobling, når komponenter bliver for afhængige af hinandens interne detaljer.

Gud-objekter
expand arrow

Et gud-objekt forsøger at gøre for meget. Det indeholder mange komponenter og håndterer mange ansvarsområder, hvilket gør klassen svær at forstå, teste og vedligeholde.

Lækage af komponent-API'er
expand arrow

Dette sker, når den ydre klasse eksponerer de interne metoder eller attributter fra sine komponenter. I stedet for at tilbyde sit eget rene interface, tvinger det brugerne til at interagere direkte med interne objekter.

Skjult kobling
expand arrow

Komponenter bliver tæt forbundet gennem interne detaljer. Ændring af én del bryder uventet en anden, fordi de er afhængige af hinandens interne struktur i stedet for klare kontrakter.

question mark

Hvad er en almindelig risiko ved brug af komposition, som kan gøre designet sværere at vedligeholde?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 16

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

bookKerneprincipper for Komposition

Stryg for at vise menuen

Sammensætning fokuserer på at opbygge komplekse objekter ved at kombinere enklere, uafhængige komponenter. I stedet for at benytte arv, som skaber stive hierarkier, tillader sammensætning klasser at samarbejde gennem indeholdte objekter. Denne tilgang gør systemer mere fleksible, modulære og nemmere at vedligeholde, da komponenter kan udskiftes eller udvides uden at ødelægge hele strukturen.

example.py

example.py

copy

Order implementerer ikke selv betalings-, lager- eller forsendelseslogik. I stedet har den separate objekter (Payment, Inventory, Shipping) og bruger dem til at udføre sit arbejde.

Hver komponent har ét ansvar, og Order koordinerer blot disse. Hvis du ønsker at ændre, hvordan betaling eller forsendelse fungerer, kan du udskifte komponenten uden at ændre Order-klassen.

Et par faldgruber ved brug af sammensætning er at skabe gud-objekter, der samler for mange komponenter og bliver svære at håndtere, lækage af komponent-API'er gennem den ydre klasse i stedet for at bevare et rent interface, samt at introducere skjult kobling, når komponenter bliver for afhængige af hinandens interne detaljer.

Gud-objekter
expand arrow

Et gud-objekt forsøger at gøre for meget. Det indeholder mange komponenter og håndterer mange ansvarsområder, hvilket gør klassen svær at forstå, teste og vedligeholde.

Lækage af komponent-API'er
expand arrow

Dette sker, når den ydre klasse eksponerer de interne metoder eller attributter fra sine komponenter. I stedet for at tilbyde sit eget rene interface, tvinger det brugerne til at interagere direkte med interne objekter.

Skjult kobling
expand arrow

Komponenter bliver tæt forbundet gennem interne detaljer. Ændring af én del bryder uventet en anden, fordi de er afhængige af hinandens interne struktur i stedet for klare kontrakter.

question mark

Hvad er en almindelig risiko ved brug af komposition, som kan gøre designet sværere at vedligeholde?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 16
some-alt