Necesitamos seguir el principio de diseño al desarrollar el software para reducir el TCO (Costo Total de Propiedad), reducir el costo de mantenimiento y para un diseño robusto.
Definición:
El nombre en sí suena contradictorio - ABIERTO y CERRADO, pero por definición,
Un módulo debe ser ABIERTO para extensión pero CERRADO para modificación
. El Principio Abierto-Cerrado (OCP) es uno de los principios de diseño más importantes. El OCP se originó a partir del trabajo de Bertrand Meyer.
En palabras simples: podemos agregar nuevas características al módulo sin cambiar el código existente (CERRADO) pero agregando nuevo código (ABIERTO). Al seguir este principio, podemos asegurarnos de que al cambiar el código en el método no vamos a romper la funcionalidad existente. Intentemos verlo usando el ejemplo.
Ejemplo:
Primero veremos el código que no sigue este principio. Consideremos que tenemos una clase que imprime la información de formas diferentes según la entrada.
Fragmento de código que viola este principio.
Ahora, el problema con este código es que cada vez que necesitamos agregar un nuevo tipo de Forma, necesitamos cambiar el código en los métodos CREATE_SHAPE, WRITE_SHAPE, lo cual es una clara violación del OCP. Según el OCP, solo deberíamos cambiar el método para agregar nueva funcionalidad. Aquí no estamos agregando una nueva funcionalidad. La creación del objeto de la Forma y escribir la información de la Forma diferente no es una nueva funcionalidad. Por lo tanto, debemos rediseñar nuestra clase y métodos para poder seguir el Principio Abierto-Cerrado.
Podemos usar el polimorfismo dinámico para lograr un diseño Abierto-Cerrado. Consulta el UML para el nuevo diseño.
Ahora crearíamos una interfaz LIF_SHAPE que usaremos para crear diferentes formas como círculo usando LCL_CIRCLE, cuadrado usando LCL_SQUARE y así sucesivamente.
Pedro Pascal
Se unió el 07/03/2018