Clean Architecture & Design Patterns in Practice · Lección

Descripción general de los principios SOLID

Obtenga una introducción a los cinco principios SOLID: responsabilidad única, abierto/cerrado, sustitución de Liskov, segregación de interfaces e inversión de dependencias.

Lección 2 de 412 pasos

Descripción general de los principios SOLID es una lección gratuita de Clean Architecture & Design Patterns in Practice en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Clean Architecture & Design Patterns in Practice, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Clean Architecture & Design Patterns in Practice incluye 4 lecciones en total.

What are SOLID Principles?

Los principios SOLID son cinco pautas de diseño para un software que sea fácil de mantener, entender y ampliar. Piense en ellos como un camino hacia un código más limpio.

Why SOLID Matters

Aplicar SOLID te proporciona un código más fácil de entender, más sencillo de probar, más flexible a los cambios y más amigable para el trabajo en equipo. Es la base de un buen diseño orientado a objetos.

S: Single Responsibility Principle (SRP)

El Principio de Responsabilidad Única: una clase debe tener una única razón para cambiar. No mezcles el cálculo de datos con su almacenamiento; separa esas responsabilidades.

SRP in Action: Simple Report

Este SimpleReport obedece al SRP: su única función es generar el contenido del informe. La impresión y el guardado son responsabilidad de otra persona.

public class SimpleReport {
  private String content;

  public SimpleReport(String content) {
    this.content = content;
  }

  // This class's single responsibility is to generate/represent the report content
  public String generateReportContent() {
    return "Report: " + content;
  }

  public static void main(String[] args) {
    SimpleReport report = new SimpleReport("Sales Data for Q1");
    System.out.println(report.generateReportContent());
  }
}

O: Open/Closed Principle (OCP)

El Principio de Abierto/Cerrado: el software debe estar abierto a la extensión pero cerrado a la modificación. Añada nuevo comportamiento sin editar el código que ya funciona.

OCP in Action: Flexible Greeters

Aquí se incorpora un nuevo tipo de saludo sin tocar la interfaz Greeter ni las clases existentes: extendiendo el comportamiento, no modificándolo. Eso es el OCP.

interface Greeter {
  String greet();
}

class EnglishGreeter implements Greeter {
  @Override
  public String greet() {
    return "Hello!";
  }
}

class SpanishGreeter implements Greeter {
  @Override
  public String greet() {
    return "¡Hola!";
  }
}

public class OCPDemo {
  public static void main(String[] args) {
    Greeter english = new EnglishGreeter();
    Greeter spanish = new SpanishGreeter();
    System.out.println(english.greet());
    System.out.println(spanish.greet());
  }
}

L: Liskov Substitution Principle (LSP)

El Principio de sustitución de Liskov: una subclase debe ser utilizable en cualquier lugar donde se espere a su clase padre, sin que el programa deje de funcionar. Los subtipos respetan el contrato.

LSP in Action: Shapes

Cualquier función que acepte una Shape maneja tanto Rectangle como Circle correctamente; cumplen con el contrato. Eso es el LSP en acción.

interface Shape {
  double getArea();
}

class Rectangle implements Shape {
  private double width; 
  private double height;

  public Rectangle(double width, double height) {
    this.width = width;
    this.height = height;
  }

  @Override
  public double getArea() {
    return width * height;
  }
}

class Circle implements Shape {
  private double radius;

  public Circle(double radius) {
    this.radius = radius;
  }

  @Override
  public double getArea() {
    return Math.PI * radius * radius;
  }
}

public class LSPDemo {
  public static void printArea(Shape shape) {
    System.out.println("Area: " + shape.getArea());
  }

  public static void main(String[] args) {
    Shape myRectangle = new Rectangle(5, 4);
    Shape myCircle = new Circle(3);

    printArea(myRectangle);
    printArea(myCircle);
  }
}

I: Interface Segregation Principle (ISP)

El Principio de Segregación de Interfaces: no fuerces a los clientes a depender de métodos que no utilizan. Prefiere muchas interfaces pequeñas y enfocadas en lugar de una sola interfaz robusta.

D: Dependency Inversion Principle (DIP)

El Principio de Inversión de Dependencia: los módulos de alto y bajo nivel deben depender de abstracciones, no de detalles concretos. Así es como se logra un acoplamiento débil.

Check Your Understanding

¿Cuál de las siguientes afirmaciones describe correctamente los beneficios de aplicar los principios SOLID?

Recap: The Power of SOLID

Has conocido los cinco principios SOLID — responsabilidad única, abierto/cerrado, Liskov, segregación de interfaces, inversión de dependencias —, el conjunto de herramientas para un software adaptable.

Gratis para empezar

Aprende Clean Architecture & Design Patterns in Practice con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
12
Lecciones
48

Preguntas frecuentes

¿La lección «Descripción general de los principios SOLID» es gratis?

Sí — el texto completo de «Descripción general de los principios SOLID» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Clean Architecture & Design Patterns in Practice, actualiza a CoddyKit PRO. El curso de Clean Architecture & Design Patterns in Practice incluye 4 lecciones en total.

¿Qué aprenderé en «Descripción general de los principios SOLID»?

Obtenga una introducción a los cinco principios SOLID: responsabilidad única, abierto/cerrado, sustitución de Liskov, segregación de interfaces e inversión de dependencias. Practicas Clean Architecture & Design Patterns in Practice con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Clean Architecture & Design Patterns in Practice?

No se requiere experiencia previa. Clean Architecture & Design Patterns in Practice en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Descripción general de los principios SOLID»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Clean Architecture & Design Patterns in Practice?

Sí. Cada lección de Clean Architecture & Design Patterns in Practice incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Introducción al código limpio
  2. Descripción general de los principios SOLID
  3. El valor de un buen diseño
  4. Cohesión, acoplamiento y separación de responsabilidades
← Volver a Clean Architecture & Design Patterns in Practice