Abstrakt. Arv är den grundläggande återanvändningsmekanismen i objektorienterade programmeringsspråk; dess mest framträdande varianter är enstaka arv, flera arv och mixin arv. I den första delen av denna uppsats identifierar och illustrerar vi de begreppsmässiga och praktiska återanvändbarhetsproblem som uppstår med dessa arvsformer. Vi presenterar sedan en enkel kompositionsmodell för strukturering av objektorienterade program, som vi kallar drag. Traiter är huvudsakligen grupper av metoder som fungerar som byggstenar för klasser och är primitiva enheter för kodåteranvändning. I denna modell, klasser består av en uppsättning egenskaper genom att ange limkod som förbinder egenskaperna tillsammans och får tillgång till det nödvändiga tillståndet. Vi visar hur egenskaper övervinner de problem som uppstår med de olika varianterna av arv, vi diskuterar hur egenskaper kan genomföras effektivt, och vi sammanfattar vår erfarenhet att tillämpa egenskaper för att refaktor en befintlig klasshierarki.
Traiter introducerades sedan i dynamiskt maskinskrivna klassbaserade språk av Schärli et al. REF som en grupp av rena metoder som fungerar som en byggsten för klasser och som en primitiv enhet för återanvändning av koder.
Traits: Composable Units of Behaviour
{'venue': 'ECOOP', 'journal': None, 'mag_field_of_study': ['Computer Science']}