Skip to content

Commit e5eb54c

Browse files
committed
mouredev#29 - JavaScript
1 parent 929ba38 commit e5eb54c

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
//EJERCICIO
2+
/*
3+
Incorrecto ❎
4+
5+
Se le está dando a la clase DogNoISP un método que no tiene sentido que tenga, lo que en un caso más complejo afectaría a la implementación de las clases
6+
7+
*/
8+
class AnimalNoISP {
9+
constructor(name) {
10+
this.name = name
11+
}
12+
13+
speak() {
14+
console.log(`${this.name} emite un sonido`)
15+
}
16+
17+
fly() {
18+
console.log(`${this.name} vuela`)
19+
}
20+
}
21+
22+
class DogNoISP extends AnimalNoISP {
23+
constructor(name) {
24+
super(name)
25+
}
26+
27+
speak() {
28+
console.log(`${this.name} ladra`)
29+
}
30+
}
31+
32+
const pepe = new DogNoISP('Pepe')
33+
34+
pepe.speak()
35+
pepe.fly()
36+
37+
/*
38+
Correcto ✅
39+
40+
"Las interfaces deben ser específicas y enfocarse en los requerimientos de los clientes que las utilizan."
41+
42+
*/
43+
class CanFly {
44+
constructor(name) {
45+
this.name = name
46+
}
47+
48+
fly() {
49+
console.log(`${this.name} vuela`)
50+
}
51+
}
52+
53+
class CanSpeak {
54+
constructor(name) {
55+
this.name = name
56+
}
57+
58+
speak() {
59+
console.log(`${this.name} emite un sonido`)
60+
}
61+
}
62+
63+
class Dog extends CanSpeak {
64+
constructor(name) {
65+
super(name)
66+
}
67+
68+
speak() {
69+
console.log(`${this.name} ladra`)
70+
}
71+
}
72+
73+
const firulais = new Dog('Firulais')
74+
75+
firulais.speak()
76+
77+
//EXTRA
78+
class Printer {
79+
print(document) {
80+
console.log(`Se ha imprimido ${document}`)
81+
}
82+
}
83+
84+
class ColorPrinter extends Printer {
85+
print(document) {
86+
console.log(`Se ha imprimido ${document} a color`)
87+
}
88+
}
89+
90+
class BlackAndWhitePrinter extends Printer {
91+
print(document) {
92+
console.log(`Se ha imprimido ${document} en blanco y negro`)
93+
}
94+
}
95+
96+
class MultifuntionalPrinter extends Printer {
97+
print(document) {
98+
console.log(`Se ha imprimido ${document} en multifunción`)
99+
}
100+
101+
scan(document) {
102+
console.log(`Se ha escaneado ${document}`)
103+
}
104+
105+
sendFax(document) {
106+
console.log(`Se ha enviado ${document} por medio de fax`)
107+
}
108+
}

0 commit comments

Comments
 (0)