Home > javascript, программирование > Паттерн Registry в Javascript

Паттерн Registry в Javascript

Мне почему-то понадобилось реализовать паттерн проектирования Registry на Javascript.  Как сделать это на PHP для меня не представляло сложности, а вот понять объектную модель Javascript у меня никогда не получалось. Самое сложное для меня остаётся понять, почему вышло реализовать Singleton.

Код пишу сюда, потому что могу и забыть как делается ;)

<script type="text/javascript">
 function Registry(){
   if(!this.instance){
     /* нет пока объекта
         создадим
     */
       function registry(){  }
       /* сборище хэшей для передаваемых объектов */
       registry.prototype.reg = {}
       /* метод для добавления объектов */
       registry.prototype.add = function(name, object){
          this.reg[name] = object;
       }
       /* метод для получение объектов */
       registry.prototype.get = function (name){
          return this.reg[name];
       }

      this.instance = new registry();
   }
 return this.instance;
 }

.* а так его использовать */
/* добавляем в реестр объект */
 Registry().add('test', 3);
/* получаем объект */
 alert(Registry().get('test'));

 </script>

Вот и всё. И даже не скажешь, что не спал ночь )

  1. FernaLina
    October 27th, 2009 at 13:56 | #1

    Мне кажется очень полезная штука.

  2. Андрей
    July 4th, 2012 at 10:00 | #2

    Спасибо! Очень полезно

  3. zoh
    August 7th, 2012 at 13:53 | #3

    Очень плохой пример!

    console.log(window.instance);

    Автор трижды засрал глобальную область видимости

    нужно не this а argument.calee !

  1. No trackbacks yet.