User Tools

Site Tools


wiki:pac

This is an old revision of the document!


Principio de Abierto/Cerrado

Este principio, propuesto originalmente por Bertrand Meyer en la década de 1980 (enlace), sostiene algo que puede parecer paradójico: una clase debe estar cerrada para modificaciones y abierta para extensiones.

Sin embargo, la aparente paradoja se aclara cuando el diseño de la clase prevé la posibilidad de extensiones y personalizaciones. Para ello, el diseñador puede utilizar recursos como la herencia, funciones de orden superior (o funciones lambda) y patrones de diseño, como Abstract Factory, Template Method y Strategy. Específicamente, en el próximo capítulo, abordaremos patrones de diseño que permiten personalizar una clase sin modificar su código.

En resumen, el Principio Abierto/Cerrado tiene como objetivo la construcción de clases flexibles y extensibles, capaces de adaptarse a diversos escenarios de uso sin modificaciones en su código fuente.

Ejemplo 1: Un ejemplo de una clase que sigue el Principio Abierto/Cerrado es la clase Collections de Java. Esta clase tiene un método estático para ordenar una lista en orden ascendente según sus elementos. A continuación se muestra un ejemplo de uso de este método:

List<String> nombres;
nombres = Arrays.asList("juan", "maria", "alexandre", "ze");
Collections.sort(nombres);
 
System.out.println(nombres);  
// resultado: ["alexandre","juan","maria","ze"]
wiki/pac.1725019712.txt.gz · Last modified: 2024/08/30 08:08 by admin