Skip to content

Commit 2f2ffb7

Browse files
committed
Add examples
1 parent 6b9d0db commit 2f2ffb7

7 files changed

Lines changed: 85 additions & 0 deletions

File tree

‎JavaScript/1-module.js‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict';
2+
3+
// Require or import
4+
5+
const { Logger } = require('./logger.js');
6+
7+
class Server {
8+
constructor() {
9+
this.logger = new Logger();
10+
}
11+
12+
shutdown() {
13+
this.logger.log('Shutting down...');
14+
}
15+
}
16+
17+
// Usage
18+
19+
const server = new Server();
20+
server.shutdown();
21+
console.log('Bye!');

‎JavaScript/2-locator.js‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
'use strict';
2+
3+
class ServiceLocator {
4+
static #modules = new Map();
5+
6+
static get(moduleName) {
7+
return ServiceLocator.#modules.get(moduleName);
8+
}
9+
10+
static set(moduleName, exp) {
11+
ServiceLocator.#modules.set(moduleName, exp);
12+
}
13+
}
14+
15+
module.exports = { ServiceLocator };

‎JavaScript/3-usage.js‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
'use strict';
2+
3+
const { ServiceLocator } = require('./2-locator.js');
4+
5+
class Server {
6+
constructor() {
7+
const { Logger } = ServiceLocator.get('logger');
8+
this.logger = new Logger();
9+
}
10+
11+
shutdown() {
12+
this.logger.log('Shutting down...');
13+
}
14+
}
15+
16+
const logger = require('./logger.js');
17+
ServiceLocator.set('logger', logger);
18+
19+
const server = new Server();
20+
server.shutdown();
21+
console.log('Bye!');

‎JavaScript/4-simple.js‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
'use strict';
2+
3+
const modules = new Map();
4+
5+
const get = (moduleName) => modules.get(moduleName);
6+
const set = (moduleName, exp) => modules.set(moduleName, exp);
7+
8+
module.exports = { get, set };

‎JavaScript/5-map.js‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
'use strict';
2+
3+
module.exports = new Map();

‎JavaScript/6-bind.js‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
'use strict';
2+
3+
const modules = new Map();
4+
5+
module.exports = {
6+
get: modules.get.bind(modules),
7+
set: modules.set.bind(modules),
8+
};

‎JavaScript/logger.js‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
'use strict';
2+
3+
class Logger {
4+
log(message) {
5+
process.stdout.write(message + '\n');
6+
}
7+
}
8+
9+
module.exports = { Logger };

0 commit comments

Comments
 (0)