You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Se complica la tarea de implementar procesos en otras clases.
6
+
- De la misma manera la clase vendrá con métodos que no necesitará en todos los casos que será implementada.
7
+
- Complica el mantenimiento, al juntar demasiados procesos.
8
+
- Hace más difícil definir los test unitarios.
9
+
- El código es algo más ilegible, pues no queda claro para qué es la clase.
17
10
18
-
getStatus(){
19
-
console.log(`El modelo ${this.model} está ${this.status}`);
20
-
}
11
+
En general, este principio busca simplificar y facilitar el desarrollo, sobre todo si se trabaja con código que luego será leído y editado por otras personas.
12
+
*/
21
13
22
-
buyCar(payment){
23
-
if(this.status==='disponible'){
24
-
if(this.validatePayment(payment)){
25
-
console.log(`Felicidades! Ha adquirido un ${this.model} totalmente nuevo!`);
26
-
this.stock--;
27
-
this.setStatus();
28
-
}else{
29
-
console.log('Debe abonar el monto total del modelo para comprarlo');
30
-
}
31
-
}else{
32
-
console.log('Modelo no disponible');
33
-
}
14
+
classUsersNoSRP{
15
+
constructor(username,password,email,userID){
16
+
this.username=username;
17
+
this.password=password;
18
+
this.email=email;
19
+
this.userID=userID;
34
20
}
35
21
36
-
/*
37
-
Esta sería la simulación de una lógica que procese los pagos, gestione inventarios
38
-
o realice cualquier otra función que no interesa o no conviene que sepa el cliente
39
-
*/
40
-
validatePayment(payment){
41
-
returnpayment>=this.price;
22
+
registerUser(){
23
+
//Registrar el usuario
42
24
}
43
25
44
-
setStatus(){
45
-
if(this.stock>0){
46
-
this.status='disponible';
47
-
}else{
48
-
this.status='agotado';
49
-
}
50
-
51
-
returnthis.status;
26
+
validateUser(){
27
+
//Validar la contraseña del usuario
52
28
}
53
29
54
-
getStock(){
55
-
console.log(`Inventario actual del modelo ${this.model}: ${this.stock}`);
30
+
sendEmail(){
31
+
//Enviar un email al ususario
56
32
}
57
33
}
58
34
59
35
/*
60
-
Esto está mal por varias razones:
36
+
PRINCIPIO DE RESPONSABILIDAD ÚNICA (SRP):
61
37
62
-
- Se complica la tarea de implementar procesos en otras clases si los necesitan.
63
-
- De la misma manera la clase vendrá con procesos que no necesita en todos los casos que será implementada.
64
-
- Complica el mantenimiento, al juntar demasiados procesos.
65
-
- Hace más difícil definir los test unitarios.
66
-
- El código es algo más ilegible, pues no queda claro para qué es la clase.
38
+
"Una clase debe hacer una cosa y, por lo tanto, debe tener una sola razón para cambiar"
67
39
68
-
En general, el principio de responsabilidad única busca simplificar y facilitar el desarrollo,
69
-
lo cual es todavía más útil si se trabaja con código que luego será leído y editado por otras personas.
40
+
Esto quiere decir que cada clase tiene un objetivo y una sola razón de ser. El único motivo por el que se debería modificar una clase es que este objetivo o la manera en que debe cumplirse sean modificados también.
0 commit comments