Skip to content

Commit 28cedc0

Browse files
authored
Merge pull request mouredev#4922 from Aldroide/main
Ejercicio #28 Python
2 parents 3daa21f + 98b64f2 commit 28cedc0

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
"""
2+
Explora el concepto de Principio de Sustitución de Liskov (Liskov Substitution Principle, LSP)
3+
crea un ejemplo siemple donde se muestre su funcionamiento de forma correcta e incorrecta.
4+
"""
5+
6+
class Bird:
7+
def volar(self):
8+
raise NotImplementedError("Este metodo permite al ave volar")
9+
10+
class Duck(Bird):
11+
def volar(self):
12+
print("El pato sabe volar")
13+
14+
class Penguin(Bird):
15+
def volar(self):
16+
print("El pinguino no sabe volar")
17+
18+
def hacer_volar(ave: Bird):
19+
ave.volar()
20+
21+
pato=Duck()
22+
pinguino= Penguin()
23+
hacer_volar(pato)
24+
hacer_volar(pinguino)
25+
26+
"""
27+
Extra:
28+
Crear una jerarquia de vehiculos, Todos deben llevar el poder
29+
acelerar y frenar y cumplir el LSP.
30+
Instrucciónes:
31+
1.- Crea la clase vehículo
32+
2.- Añade tres subclases de vehículo
33+
3.- Implementa operacion acelerar y frenar como corresponda
34+
4.- Desarrolla un codigo que compruebe que se cumple el LSP
35+
"""
36+
37+
class Vehicle():
38+
def speed_up(self):
39+
raise NotImplementedError ("Permite al vehículo acelerar")
40+
41+
def brake(self):
42+
raise NotImplementedError ("Permite al vehículo frenar")
43+
44+
class Truck(Vehicle):
45+
def speed_up(self):
46+
print("El camion esta acelerando")
47+
48+
def brake(self):
49+
print("El camion esta frenando")
50+
51+
class Motorcycle(Vehicle):
52+
def speed_up(self):
53+
print("La motocicleta esta acelerando")
54+
def brake(self):
55+
print("La motocicleta esta frenando")
56+
57+
class Airplane(Vehicle):
58+
def speed_up(self):
59+
print("El avion esta acelerando")
60+
def brake(self):
61+
print("El avion esta frenando")
62+
63+
def braking(vehiculo: Vehicle):
64+
vehiculo.brake()
65+
66+
def speeding_up(vehiculo: Vehicle):
67+
vehiculo.speed_up()
68+
69+
camion = Truck()
70+
moto = Motorcycle()
71+
avion = Airplane()
72+
73+
braking(camion)
74+
braking(moto)
75+
braking(avion)
76+
speeding_up(camion)
77+
speeding_up(moto)
78+
speeding_up(avion)

0 commit comments

Comments
 (0)