Dejo aquí el diseño singleton en Harbour.
Fuente: Wikipedia
"El patrón de diseño singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto.
Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella."
#include "hbclass.ch"
CLASS HARBOURSingleton
CLASSDATA Self
DATA cText
METHOD getInstance
METHOD InitClass
END CLASS
METHOD InitClass CLASS HARBOURSingleton
if ::Self = NIL
::Self := Self
endif
RETURN Self
METHOD getInstance CLASS HARBOURSingleton
RETURN ::Self
Ejemplo de uso:
/* Test Class SingleTon */
Function Main()
Local oSingleton , oSingleton_TWO
oSingleton := HARBOURSingleton():getInstance()
? "instance one" , oSingleton:cText := "Singleton"
oSingleton_TWO := HARBOURSingleton():getInstance()
oSingleton:cText := "Change"
? "instance two", oSingleton_TWO:cText, oSingleton:cText
RETURN NIL
No hay comentarios:
Publicar un comentario