Overview
Implement createSingleton(BaseClass) — wraps a class so only one instance is ever created.
Examples
const S = createSingleton(class { constructor(v) { this.v = v; } });
const a = new S(1);
const b = new S(2);
a === b; // true
a.v; // 1Solution
Reveal solution
function createSingleton(BaseClass) {
let instance;
return function(...args) {
if (!instance) instance = new BaseClass(...args);
return instance;
};
}singleton.js
Singleton
easycodingJavaScriptDesign Patterns
Overview
Implement createSingleton(BaseClass) — wraps a class so only one instance is ever created.
Examples
const S = createSingleton(class { constructor(v) { this.v = v; } });
const a = new S(1);
const b = new S(2);
a === b; // true
a.v; // 1Solution
Reveal solution
function createSingleton(BaseClass) {
let instance;
return function(...args) {
if (!instance) instance = new BaseClass(...args);
return instance;
};
}NameTopicDifficulty
103 of 103 problems