Para hacer que el patrón Prototype cumpla con este principio la técnica está en usar polimorfismo. Como se aprecia en el modelo de ejemplo se tiene la clase "Shape" que extiende a 3 clases más, a "Square", "Rectangle" y "Circle". Las clases hijas son figuras, pero que se comportan de manera distinta.
El principio Open-Close(Abierto-Cerrado) especifica que un módulo es 'Abierto' si es posible extender su funcionalidad y es 'Cerrado' si luego de implementado no es necesaria su modificación para que sea compatible con otros módulos.
¿Qué es lo que garantiza que hacerlo de esa manera cumpla con el principio de Sustitución de Liskov? Este principio nos dice que si se tienen clases que heredan de una clase padre entonces se podrá sustituir en un método en donde se implementa la clase padre un objeto del tipo de cualquiera de las clases hijas sin necesidad de conocer las diferencias entre ellas. Entonces en el modelo cuando queramos hacer un clon de "Shape" perfectamente podríamos hacer un casting a "Square", a "Rectangle" o a "Circle". Esto nos garantiza poder crear clones de cualquiera de las figuras que están en el modelo. Sabiendo esto se puede apreciar que se cumple entonces el principio de Sustitución de Liskov.
Nenhum comentário:
Postar um comentário