Skip to content

Commit 5524f53

Browse files
authored
mouredev#23 - Java
Solución al ejercicio 23 del Roadmap 2024.
1 parent 53dbae9 commit 5524f53

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
public class Main {
2+
3+
/**
4+
* Singleton es un patrón de diseño creacional que permite tener una instancia de una clase o variable,
5+
* al tiempo que proporciona un punto de acceso global a esta instancia.
6+
*/
7+
8+
//Tenemos una variable global, que para acceder a ella se deberá usar el método get.
9+
private static String singleton;
10+
11+
//Crea una instancia si no existe y funciona cómo punto de acceso global.
12+
public static String getSingleton() {
13+
if (singleton == null) {
14+
singleton = "singleton";
15+
}
16+
return singleton;
17+
}
18+
19+
public static void main(String[] args) {
20+
//Usamos nuestro singleton.
21+
System.out.println(getSingleton()+"\n");
22+
23+
//DIFICULTAD EXTRA (opcional):
24+
User sesionUser = Sesion.getUser();
25+
26+
System.out.println("Iniciando sesión...\n");
27+
28+
System.out.println("ID: "+ sesionUser.getId());
29+
System.out.println("Nombre de usuario: "+ sesionUser.getUserName());
30+
System.out.println("Nombre: "+ sesionUser.getName());
31+
System.out.println("Correo: "+ sesionUser.getEmail());
32+
33+
Sesion.removeUser();
34+
35+
System.out.println("\nSesión eliminada");
36+
}
37+
}
38+
39+
class Sesion {
40+
//Atributo singleton
41+
private static User user;
42+
43+
//Método que nos devuelve una instancia única
44+
public static User getUser() {
45+
if (user == null) {
46+
user = new User(1, "Abel-ADE", "Abel", "Abel-ADE@correo.es");
47+
}
48+
return user;
49+
}
50+
51+
// Método que elimina los datos de la sesión
52+
public static void removeUser() {
53+
if (user != null) {
54+
user = null;
55+
}
56+
}
57+
}
58+
59+
class User {
60+
//Atributos de un usuario
61+
private int id;
62+
private String userName;
63+
private String name;
64+
private String email;
65+
66+
//Métodos get y set para sus atributos
67+
public int getId() {
68+
return id;
69+
}
70+
71+
public String getUserName() {
72+
return userName;
73+
}
74+
75+
public String getName() {
76+
return name;
77+
}
78+
79+
public String getEmail() {
80+
return email;
81+
}
82+
83+
//Constructor
84+
public User(int id, String userName, String name, String email) {
85+
this.id = id;
86+
this.userName = userName;
87+
this.name = name;
88+
this.email = email;
89+
}
90+
}

0 commit comments

Comments
 (0)