File tree Expand file tree Collapse file tree 1 file changed +78
-0
lines changed
Roadmap/28 - SOLID LSP/python Expand file tree Collapse file tree 1 file changed +78
-0
lines changed Original file line number Diff line number Diff line change 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 )
You can’t perform that action at this time.
0 commit comments