Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
28 de febrero de 2012
Resumen de ideas para disear software de manera que resulte una herramienta til y no una
maraa ininteligible.
1.2. Abstracciones
1.2.1. Polimorfismo
???????
1.2.2. Interfaces
???????
1
2.3. Principio de sustitucin de Liskov
Los subtipos deben ser sustituibles por sus tipos base. Si una funcin acepta una instancia de Ox
que es derivado de una clase abstracta OA, pero esa funcin no puede luego aceptar una instancia de
OA, significa que la funcin haca alguna clasificacin particular para identificar Ox, de manera que
ahora si le suministramos Oy 6= Ox, no sabe que hacer.
Aqu entonces vemos como la violacin de la sustitucin de Liskov ha provocado una violacin del
Principio de apertura/cerrazn, que es el problema ms importante que suele generar.
As, cada clase define su propia interfaz abstracta que necesita que la clase en el nivel ms bajo
implemente, y se indpendiza de los mdulos de bajo nivel. stos ltimos se preocupan de cumplir con
la interfaz, y listo.
Idealmente, la interfaz es independiente tanto del cliente como del servidor. Ambos la utilizan para
comunicarse.
Referencias
[1] Robert Cecil Martin. Agile Software Development: Principles, Patterns, and Practices. Prentice Hall
PTR, Upper Saddle River, NJ, USA, 2003.