Techster Skrevet 21. september 2009 Del Skrevet 21. september 2009 (endret) Har en server app som lager et Klient objekt for hver tilkobling. Klient klassen inneholder noen funksjoner, men har flere objektreferanser til flere andre klasser. Det jeg lurer på er om dette er en dårlig design fordi den vil ta mye minne hvis det er mange klienter som kobler til samtidig. Alle disse Klient objektene vil jo da få unike referanser til objekter fra de andre klassene. Det er vel sånn det funker? Er det bedre i dette tilfelle å lage de felles metodene i en static klasse? Edit: Det jeg mener med de felles metodene er funksjonene i Klient klassen som "duplikeres" for hvert Klient objekt, samt metodene i de klassene Klient har et "has-a" forhold til. Endret 21. september 2009 av Techster Lenke til kommentar
GeirGrusom Skrevet 21. september 2009 Del Skrevet 21. september 2009 Nei, funksjoner som ikke er definert som virtual vil ikke lagres med objektet, og for funksjoner som er definert som virtual vil det kun ligge pekere til funksjonene i vitrual function call tabellen til objektet. Du sparer ingenting på å bruke statiske funksjoner i statiske klasser. Funksjoner vil aldri bli duplisert i utgangspunktet. Lenke til kommentar
HDSoftware Skrevet 21. september 2009 Del Skrevet 21. september 2009 Når du instanserer en klasse eksempelvis 10 ganger så betyr ikek det at du bruker 10 ganger så mye minne til metoder. Selve metodene lilgger i samme minneområde og er felles. På den annen side, hvis du lager en ny klasse som arver, så vil de "nye" metodene selvsagt ta plass. Men som sagt - objektene dine bruker den samme koden. Det som derimot bruker nytt minne er dataene til instansene dine. Har du f.eks. definert en STRING som bruker 1K minne så vil hver instans bruke 1K minne hver. Svaret på ditt spørsmål er derfor NEI. Det er svert lite å spare på å ha en statisk klasse for å samle funksjoner. Personlig bruker jeg svert få statiske klasser, med mindre designet avkrever dette. SPesielt innen InterOP er det påkrevd med statiske klasser Lenke til kommentar
Techster Skrevet 21. september 2009 Forfatter Del Skrevet 21. september 2009 Takker for to gode svar som forklarte alt jeg trengte å vite pluss litt til! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå