[fpc-pascal] Implementing a true Singleton - Can we decrease the visibility of a method?

Graeme Geldenhuys graemeg.lists at gmail.com
Fri Dec 8 10:55:02 CET 2006


On 12/8/06, Vincent Snijders <vsnijders at quicknet.nl> wrote:
> I think the solution is to create a public constructor which throws an
> NotImplemented exception or something like that.

Ok, that works, or at least stops a developer from trying to create a
instance directly.  In the exception message, I mention the correct
function they should have used.

> Note: instead of making function GetSingleton : TSingleton; a global function you
> could make it class function GetInstance too.

Yes I know, thanks. But I prefer to use the function, as it is less
typing, especially when the class name is lengthy.  I also normally
prefix it with a 'g' to show it is a global singleton function.

gLog
    vs
TLogToFile.GetSingleton

When you use singletons a lot (as I do), less typing is better.  :)

PS:
  I still don't know why we can't decrease visibility in Free Pascal.
Is there some internal language design that prevents it?

-- 
Graeme Geldenhuys

There's no place like S34° 03.168'  E018° 49.342'



More information about the fpc-pascal mailing list