Herramientas de usuario

Herramientas del sitio


informatica:programacion:solid

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

informatica:programacion:solid [2023/06/27 13:41] – creado tempwininformatica:programacion:solid [2023/06/27 13:44] (actual) – [Principio de Responsabilidad Única (SRP)] tempwin
Línea 17: Línea 17:
 Una clase debe tener una única razón para cambiar y debe tener una única responsabilidad. Una clase debe tener una única razón para cambiar y debe tener una única responsabilidad.
  
 +Por ejemplo, supongamos que tenemos la siguiente clase:
  
 +<code php>
 +class UserManager {
 +    public function registerUser($userData) {
 +        // Lógica para registrar un usuario en la base de datos
 +    }
 +
 +    public function sendWelcomeEmail($userEmail) {
 +        // Lógica para enviar un correo de bienvenida al usuario
 +    }
 +}
 +</code>
 +
 +En el ejemplo anterior, la clase ''UserManager'' tiene dos responsabilidades diferentes: 
 +
 +  * Registrar un usuario en la base de datos
 +  * Enviar un correo de bienvenida. 
 +
 +Esto viola el principio de Responsabilidad Única. Para cumplir con el principio SRP, se puede dividir estas responsabilidades en diferentes clases:
 +
 +<code php>
 +class UserRepository {
 +    public function registerUser($userData) {
 +        // Lógica para registrar un usuario en la base de datos
 +    }
 +}
 +</code>
 +
 +<code php>
 +class EmailService {
 +    public function sendWelcomeEmail($userEmail) {
 +        // Lógica para enviar un correo de bienvenida al usuario
 +    }
 +}
 +</code>
 +
 +Ahora, la clase ''UserRepository'' se encarga específicamente del registro de usuarios en la base de datos, mientras que la clase ''EmailService'' se encarga únicamente de enviar correos de bienvenida. 
 +
 +De esta manera, cada clase tiene una responsabilidad única y específica, lo que facilita la comprensión, el mantenimiento y la extensibilidad del código en el futuro.
 ===== Principio de Abierto/Cerrado (OCP) ===== ===== Principio de Abierto/Cerrado (OCP) =====
  
informatica/programacion/solid.1687866117.txt.gz · Última modificación: por tempwin