Skip to content

Commit

Permalink
Merge pull request mouredev#4596 from agusrosero/develop
Browse files Browse the repository at this point in the history
#26 - Python
  • Loading branch information
kontroldev authored Jun 28, 2024
2 parents 8e6c749 + 00d6701 commit 4cf7f9b
Showing 1 changed file with 62 additions and 0 deletions.
62 changes: 62 additions & 0 deletions Roadmap/26 - SOLID SRP/python/agusrosero.py
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.
*/
"""

0 comments on commit 4cf7f9b

Please sign in to comment.