SingletonSingleton

Av | 4. april 2012

Singleton is something that to my knowledge, does not exist in Clarion. In both Java and C# it is in use. Simplified, it describes an object that can only be instantiated once.  Normally, copies are cheap, but it happens that it is wise to have a few limitatins. Today I were to create a holydaysfunction that should take into account regular workdays, norwegian holydays and defined productiondates. This was used to calculate deliverydate. Alle basedata were static, at least so static they are valid for the next couple of years, in due time for the next reboot. As far as I could see, a perfect task for a Singleton. No instantiation unless needed, all the data read once, and only once. Minimal overhead. Got to like it.Singleton var et begrep som, meg bekjent, ikke finnes i Clarion. I både Java og C# er det derimot et tema, uten at det dermed er mye omtalt. Enkelt sagt er det et objekt som kun kan instanseres en gang. Normalt er kopier billige, men det hender at det kan være smart å begrense seg litt. I dag skulle jeg lage en helligdagsfunksjon som både skulle hensynta normale arbeidsdager, helligdager i Norge og definerte produksjonsdager. Denne skulle kalles for å beregne leveringsdato. Alle grunnlagsdata er å definere som ganske statiske, dvs. de er gyldige de neste par årene, i god tid før neste reboot. Så vidt jeg kunne se, var det en perfekt oppgave for en Singleton. Ingen instansering før det ble behov, alle data leses en gang, og kun en gang. Minimal overhead. Må bare like det.