Skip to content

Commit 0a3ccaf

Browse files
authored
Merge pull request mouredev#6947 from caterinarodriguezdev/23-javascript
#23-javascript
2 parents bd310f2 + a7d2f5a commit 0a3ccaf

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/*
2+
* EJERCICIO:
3+
* Explora el patrón de diseño "singleton" y muestra cómo crearlo
4+
* con un ejemplo genérico.
5+
*
6+
* DIFICULTAD EXTRA (opcional):
7+
* Utiliza el patrón de diseño "singleton" para representar una clase que
8+
* haga referencia a la sesión de usuario de una aplicación ficticia.
9+
* La sesión debe permitir asignar un usuario (id, username, nombre y email),
10+
* recuperar los datos del usuario y borrar los datos de la sesión.
11+
*/
12+
13+
class Dni {
14+
constructor(nombre, apellido) {
15+
this.nombre = nombre;
16+
this.apellido = apellido;
17+
18+
if (typeof Dni.instance === "object") {
19+
return Dni.instance;
20+
}
21+
22+
Dni.instance = this;
23+
return this;
24+
}
25+
26+
getDni() {
27+
console.log(`Nombre: ${this.nombre}\nApellido: ${this.apellido}`);
28+
}
29+
}
30+
31+
const dni01 = new Dni("caterina", "rodriguez");
32+
const dni02 = new Dni("loki", "rodriguez");
33+
34+
dni02.getDni();
35+
36+
console.log("------------------DIFICULTAD EXTRA-----------------");
37+
38+
class Sesion {
39+
constructor(id, username, nombre, email) {
40+
this.id = id;
41+
this.username = username;
42+
this.nombre = nombre;
43+
this.email = email;
44+
45+
if (typeof Sesion.instance === "object") {
46+
return Sesion.instance;
47+
}
48+
49+
Sesion.instance = this;
50+
return this;
51+
}
52+
53+
getDatos() {
54+
console.log(
55+
`El usuario ${this.username} con id ${this.id} se llama ${this.nombre} y su email es ${this.email}`
56+
);
57+
}
58+
59+
borrarDatos() {
60+
this.id = "";
61+
this.username = "";
62+
this.nombre = "";
63+
this.email = "";
64+
}
65+
}
66+
67+
const s1 = new Sesion("001", "gracedurum", "grace", "[email protected]");
68+
s1.getDatos();
69+
s1.borrarDatos();
70+
s1.getDatos();

0 commit comments

Comments
 (0)