forked from mouredev/roadmap-retos-programacion
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request mouredev#4596 from agusrosero/develop
#26 - Python
- Loading branch information
Showing
1 changed file
with
62 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
""" | ||
/* | ||
* EJERCICIO: | ||
* Explora el "Principio SOLID de Responsabilidad Única (Single Responsibility | ||
* Principle, SRP)" y crea un ejemplo simple donde se muestre su funcionamiento | ||
* de forma correcta e incorrecta. | ||
""" | ||
|
||
# Forma incorrecta | ||
|
||
|
||
class Incorrecta: | ||
def __init__(self, name, position): | ||
self.name = name | ||
self.position = position | ||
|
||
def get_details(self): | ||
return f"Empleado: {self.name}, Posicion: {self.position}" | ||
|
||
def generate_report(self): | ||
return f"Generando reporte para empleado: {self.name}" | ||
|
||
# Forma correcta | ||
|
||
|
||
class Correcta: | ||
def __init__(self, name, position): | ||
self.name = name | ||
self.position = position | ||
|
||
def get_details(self): | ||
return f"Empleado: {self.name}, Posicion: {self.position}" | ||
|
||
|
||
class Correcta2: | ||
def __init__(self, employee): | ||
self.employee = employee | ||
|
||
def generate_report(self): | ||
return f"Generando reporte para empleado: {self.employee.name}" | ||
|
||
|
||
""" | ||
* DIFICULTAD EXTRA (opcional): | ||
* Desarrolla un sistema de gestión para una biblioteca. El sistema necesita | ||
* manejar diferentes aspectos como el registro de libros, la gestión de usuarios | ||
* y el procesamiento de préstamos de libros. | ||
* Requisitos: | ||
* 1. Registrar libros: El sistema debe permitir agregar nuevos libros con | ||
* información básica como título, autor y número de copias disponibles. | ||
* 2. Registrar usuarios: El sistema debe permitir agregar nuevos usuarios con | ||
* información básica como nombre, número de identificación y correo electrónico. | ||
* 3. Procesar préstamos de libros: El sistema debe permitir a los usuarios | ||
* tomar prestados y devolver libros. | ||
* Instrucciones: | ||
* 1. Diseña una clase que no cumple el SRP: Crea una clase Library que maneje | ||
* los tres aspectos mencionados anteriormente (registro de libros, registro de | ||
* usuarios y procesamiento de préstamos). | ||
* 2. Refactoriza el código: Separa las responsabilidades en diferentes clases | ||
* siguiendo el Principio de Responsabilidad Única. | ||
*/ | ||
""" |