Single responsibility
Lección 22 de 28 del curso Clean Code - Write better code using Python de Coddy.
"Nunca debería haber más de una razón para que una clase cambie."
El principio de responsabilidad única (SRP) establece que cada clase y función debe tener solo un trabajo o una sola razón para cambiar.
Objetivos -
- Crear clases y funciones altamente cohesivas y robustas.
- Promover la composición de clases
- Evitar la duplicación de código
Desafío
IntermedioSe te da la clase Person que tiene un método save para guardar a la persona en la base de datos.
En el código dado, la clase tiene dos responsabilidades:
- Crear y gestionar el objeto persona
- Guardar a la persona en la base de datos
Tu tarea es asegurarte de que Person tenga solo una responsabilidad.
- Crear la clase
Databasecon el métodosave. - Crear la conexión entre
PersonyDatabase
Hay muchas opciones para realizar esta tarea, ¡estamos buscando una específica, utiliza las pistas cuando sea necesario!
¡Ten en cuenta que cuando creamos una clase separada para Database podemos gestionar todo lo relacionado con "Database related" en un solo lugar!
Pruébalo tú mismo
class Person:
def __init__(self, name):
self.name = name
def save(self):
print('Saving person with name "%s"' % self.name)