internal void register(StreamingContext context) { if (LoggerDiags.Enabled) { SingletonLogger.Instance().InfoLog(typeof(BlauSpace), "REGISTERING BLAUSPACE"); } BlauSpaceRegistry.Instance().add(this); }
// lazy singleton constructor public static BlauSpaceRegistry Instance() { if (_instance == null) { _instance = new BlauSpaceRegistry(); } return(_instance); }
// deserializer consults the blauspace registry to avoid duplicate instantiations public Object GetRealObject(StreamingContext context) { IBlauSpace s_validated = BlauSpaceRegistry.Instance().validate(this); if (LoggerDiags.Enabled) { SingletonLogger.Instance().InfoLog(typeof(BlauSpace), "VALIDATING BLAUSPACE"); } return(s_validated); }
// static factory method, which consults registry to avoid multiple instantiations public static IBlauSpace create(int dimension, string [] names, double [] min, double [] max) { BlauSpace s = new BlauSpace(dimension, names, min, max); // register new instances with the registry BlauSpaceRegistry.Instance().add(s); // query the registry for canonical representative IBlauSpace s_validated = BlauSpaceRegistry.Instance().validate(s); return(s_validated); }