From 9ff4ab61d7bc84329a17b447b24b9c2c631fa7ba Mon Sep 17 00:00:00 2001 From: "Luiz F. Picolo" Date: Thu, 12 Sep 2024 08:29:05 -0400 Subject: [PATCH] Commit inicial --- ex1.js | 14 ++++++++++++++ ex2.js | 29 +++++++++++++++++++++++++++++ ex3.js | 20 ++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 ex1.js create mode 100644 ex2.js create mode 100644 ex3.js diff --git a/ex1.js b/ex1.js new file mode 100644 index 0000000..f54c917 --- /dev/null +++ b/ex1.js @@ -0,0 +1,14 @@ +class Logger { + log(message) { + console.log(`Log message: ${message}`); + } +} + +function executeTask(task, logger) { + logger.log("Iniciando tarefa..."); + task(); + logger.log("Tarefa concluída!"); +} + +const logger = new Logger(); +executeTask(() => console.log("Executando tarefa principal..."), logger); diff --git a/ex2.js b/ex2.js new file mode 100644 index 0000000..b25336d --- /dev/null +++ b/ex2.js @@ -0,0 +1,29 @@ +class UserService { + constructor(database) { + this.database = database; + } + + getUser(id) { + return this.database.find(user => user.id === id); + } +} + +class Database { + constructor() { + this.users = [ + { id: 1, name: 'Alice' }, + { id: 2, name: 'Bob' } + ]; + } + + find(id) { + return this.users.find(id); + } +} + +// Inversão de Controle a dependência (Database) é injetada no UserService +const database = new Database(); +const userService = new UserService(database); + +const user = userService.getUser(1); +console.log(user); // { id: 1, name: 'Alice' } diff --git a/ex3.js b/ex3.js new file mode 100644 index 0000000..0c2d0d0 --- /dev/null +++ b/ex3.js @@ -0,0 +1,20 @@ +class Database { + query(sql) { + console.log(`Executando consulta: ${sql}`); + } +} + +class UserService { + constructor(database) { + this.database = database; // Dependência injetada + } + + getUser(id) { + this.database.query(`SELECT * FROM users WHERE id = ${id}`); + } +} + +const database = new Database(); +const userService = new UserService(database); + +userService.getUser(1); // Executa com a dependência injetada