Я использую класс singleton pattern в coffeescript, который показан ниже в последнее время. Он работает отлично, но я не знаю, почему это может быть одноэлементный шаблон. Это может быть глупый вопрос, но спасибо за ваш ответ.Singleton class in coffeescript
#coffeescript
class BaseClass
class Singleton
singleton = new Singleton()
BaseClass = -> singleton
a = new BaseClass()
a.name = "John"
console.log a.name # "John"
b = new BaseClass()
b.name = "Lisa"
console.log b.name # "Lisa"
console.log a.name # "Lisa"
и код ниже Javascript, который производится с помощью кода выше
var BaseClass, a, b;
BaseClass = (function() {
var Singleton, singleton;
function BaseClass() {}
Singleton = (function() {
function Singleton() {}
return Singleton;
})();
singleton = new Singleton();
BaseClass = function() {
return singleton;
};
return BaseClass;
})();
a = new BaseClass();
a.name = "John";
console.log(a.name);
b = new BaseClass();
b.name = "Lisa";
console.log(b.name);
console.log(a.name);
Редакции: Я не спрашиваю, определение «одноплодного рисунка», ни как они, как правило, созданы, но причина, почему код выше всегда возвращает тот же экземпляр вместо создания нового.
Возможно, вы запустите этот код в отладчике, чтобы увидеть «почему» или «как» этот код делает то, что он делает. –