Skip to content

Commit fd09f25

Browse files
committed
2 parents 06cb75d + e06002f commit fd09f25

File tree

2 files changed

+624
-563
lines changed

2 files changed

+624
-563
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/** #23 - JavaScript ->Jesus Antonio Escamilla */
2+
3+
/**
4+
* El patrón Singleton es uno de los patrones de diseño más utilizados en la industria del desarrollo de software.
5+
* Singleton es un patrón de diseño creacional que nos permite asegurarnos de que una clase tenga una única instancia, a la vez que proporciona un punto de acceso global a dicha instancia.
6+
* El patrón de diseño Singleton se utiliza cuando solo se necesita una instancia de una clase en toda la aplicación.
7+
*/
8+
9+
//---EJERCIÓ---
10+
// Aquí tenemos una clase para usar el Patron de Diseño Singleton
11+
class Singleton {
12+
// Se usa un constructor que valida si ya fue instanciado o no
13+
constructor() {
14+
if (!!Singleton.instance) {
15+
return Singleton.instance;
16+
}
17+
18+
// Inicializa las propiedades de la clase aquí
19+
// Las propiedades pueden cambiar
20+
this.someProperty = 'someValue';
21+
22+
// Retornamos la instancia creada
23+
// Una vez instanciada no se puede volver a instancia o crear nueva
24+
Singleton.instance = this;
25+
}
26+
27+
// Un método de la clase
28+
someMethod() {
29+
console.log('Hola, soy un método del Singleton y ya fue creado.');
30+
}
31+
}
32+
33+
// Ejemplos del Patron de Diseño Singleton
34+
const conectarSingleton = new Singleton();
35+
conectarSingleton.someMethod();
36+
console.log(conectarSingleton.someProperty);
37+
38+
const desconectarSingleton = new Singleton();
39+
desconectarSingleton.someMethod();
40+
desconectarSingleton.someProperty = 'newSomeValue';
41+
console.log(desconectarSingleton.someProperty);
42+
43+
44+
45+
/**-----DIFICULTAD EXTRA-----*/
46+
47+
// Pendiente
48+
49+
/**-----DIFICULTAD EXTRA-----*/

0 commit comments

Comments
 (0)