В тот момент, когда в Украине гриппомор и над Киевом летают Мрії и поливают всех хлоркой, в далёкой Америке начала продаваться грандиозная и эволюционная Windows 7! Толпы вендотролей и фанбоев побежало красть новую игрушечку, а вот в Японии маркетологи и пиарсчеги Microsoft, конечно же, показывали прелести новой ОС. Но вот беда – она никак не хотела работать и подвисала:
Мне почему-то понадобилось реализовать паттерн проектирования 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>
Умные дядьки (или не очень) взяли и надосуге посчитали количество кода в основных модулях KDE. Получилось у них 4 миллиона с хвостом. Даже графики нарисовали:
Мало того, они и денежку посчитали – $ 175,364,716.
Уже представил, сколько стоит ядро или OpenOffice.