Satt här och funderar lite angående klasser nu när jag skriver mitt program.
Nu har jag använt mig av en statisk klass för att sköta vissa saker. Frågan som dyker upp nu såhär i efterhand är :
Varför valde jag att göra klassen statisk?
Jag hade säkert någon anledning till det när jag skrev klassen men nu kan jag inte se någon som helst anledning förutom att klassen inte lagrar några variabler utan bara utför funktioner. Detta är nog den största anledningen till att jag gjort en statisk klass men nu funderar jag på om detta inte gör att klassen blir mer felbenägen.
Ex:
Mina klassmetoder anropas av flera olika trådar och då kan det kanske lättare bli fel eller? Man skulle iof kunna förhindra detta genom att använda semaforer och liknande hjälpmedel men det är lätt att det blir fel. Så nu tänker jag mig att man kanske istället skulle skapa ett objekt i varje tråd så att de olika trådarna inte exikvera samma funktioner samtidigt.
Å andra sidan så inser jag nu medans jag sitter här och skriver att jag måste kunna låsa så att vissa delar av vissa funktioner inte görs samtidigt då dom påverkar samma data utanför programmet.
Så frågan är kort och gott:
Finns det någon "mall" för när man skall använda statiska klasser och inte?
Om klassen är statisk (dvs. deklarerad med static class X) betyder det att namnet inte exporteras till andra moduler under länkningen. Det har inget med trådsäkerhet att göra i sig. Däremot är det väl rätt onödigt att göra en klass om den innehåller någon information (eller några virtuella funktioner)? Vill du gruppera funktioner har du namespaces till ditt förfogande.
Att samma funktion kan anropas av flera trådar samtidigt gör inget, bara de inte har pekare till samma data (exempelvis statiska variabler deklarerade inuti funktionerna).
Kan ett namespace ha privata metoder eller är allt automatiskt publikt?
I mitt fall vill jag inte att användaren skall kunna komma åt vissa av mina funktioner utifrån.
252 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25