Open/Close
El principio Open/Closed (Abierto/Cerrado) es otro de los principios SOLID y se refiere a que una clase o módulo debe estar diseñado de tal manera que esté abierto para extensión, pero cerrado para modificación. Esto significa que se deben permitir cambios en la funcionalidad de una clase o módulo sin tener que modificar su código existente.
Algunos ejemplos de cómo aplicar este principio en Java son:
- Utilizando herencia: se puede crear una clase base Shape con un método draw() y crear subclases como Circle, Square, Rectangle, etc. que heredan de Shape y sobreescriben el método draw() con la lógica específica para cada forma. De esta manera, se pueden agregar nuevas formas sin tener que modificar la clase Shape.
class Shape {
public void draw() {
// lógica común para dibujar cualquier forma
}
}
class Circle extends Shape {
@override
public void draw() {
// lógica específica para dibujar un círculo
}
}
- Utilizando interfaces: se puede crear una interfaz Payment con un método processPayment() y crear clases que implementen esta interfaz, como CreditCardPayment, DebitCardPayment, PaypalPayment, etc. De esta manera, se pueden agregar nuevos métodos de pago sin tener que modificar las clases existentes.
interface Payment {
void processPayment();
}
class CreditCardPayment implements Payment {
@override
public void processPayment() {
// lógica específica para procesar un pago con tarjeta de crédito
}
}
https://howtodoinjava.com/best-practices/open-closed-principle/
https://www.geeksforgeeks.org/open-closed-principle-in-java-with-examples/?ref=rp