Denna kod demonstrerar hur man kan använda komposition (composition) istället för arv, i kombination med Strategy design pattern, för att skapa flexibla och utbytbara beteenden i ett program.
Klassen Kevin fungerar som en “container” som innehåller ett beteende (IBehavior) istället för att själv implementera beteendet genom arv. Detta gör det möjligt att ändra beteendet dynamiskt under körning.
I stället för att Kevin är ett visst beteende, så har Kevin ett beteende. Detta kallas en har-en-relation (HAS-A), vilket ger större flexibilitet eftersom beteendet kan bytas ut utan att ändra själva klassen.