Ruby Class Methods : Klass- och instansmetoder i Ruby

En av de viktigaste aspekterna av att skriva ruby-klasserna är att förstå skillnaden mellan klassmetoderna och instansmetoderna och vi skulle vilja täcka in denna skillnad i vårt inlägg. För det första sägs metoden som finns på klassnivån vara klassmetoden och den som finns på objektnivå sägs vara instansmetoden. För att göra det lättare att relatera till – för utvecklarna är metoderna som anropas på en klass klassmetoderna och de som anropas på en instans av en klass är instansmetoderna. Exempel: När du arbetar med Ruby måste du veta att klasser också är objekt och därför motsvarar de metoder som definieras som klassmetoderna specifikt endast de objekt som definierar dessa klasser. Till exempel, om vi definierar my_class_method i en klass som kallas som Test, kommer min_class_method endast att motsvara objektet som heter Test, och detta test är inget annat än ett exempel på en inbyggd ruby-klass som kallas 'Class'.

När ska man använda en klassmetod?

En klassmetod är en funktionalitet oberoende av en viss instans, snarare är det den som bara tillhör en klass. Klassmetoden används för den funktionalitet som inte är specifik för någon instans av en klass. Exempel:

När ska man använda instansmetoderna?

Instansmetoder används när du måste agera på en specifik instans av en klass. När du behöver införa en funktionalitet som motsvarar identiteten för en instans bör du använda instansmetoden. Exempel: Det är viktigt att förstå denna till synes subtila skillnad mellan var man ska använda en klassmetod och var man ska använda en instansmetod, för i avsaknad av en tydlig förståelse för detta kan din objektorienterade design gå fel. Så detta leder till att du ofta stöter på fall där både klassmetoder och instansmetoder har använts felaktigt i stället för varandra. Inkapslings- och modelleringsattributen hos den objektorienterade designen är nyckelelementen för dess framgång. Så det bör komma ihåg att när den funktionalitet som ska implementeras motsvarar ett objekt, måste instansmetoderna användas. Samtidigt är det också viktigt att veta om den funktionalitet som implementeras är i linje med den specifika instansen av objektet eller inte. Spara Spara Spara

Prenumerera för de senaste uppdateringarna

relaterade inlägg

Om inläggsförfattare

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *


sv_SESwedish