Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/08/2012, 09:43
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Principio de sustitución de Liskov (LSP)

El principio de sustitución de Liskov, lo que habla es precisamente de eso, de que si tienes una clase Perro, y luego tienes una clase PastorAleman, puedes sustituir Perro por PastorAleman sin afectar el sistema, ya que PastorAleman es un Perro.

Lo que quiere decir es que cuando necesites aplicar la herencia de una de tus clases es porque hay una relación directa y familiar, o sea que la clase que hereda tiene todas las características de la clase padre y puedes sustituirla sin provocar un error en el sistema.

Esto te ayuda a que no quieras hacer "superobjetosglobales" desde donde todas tus clases hereden (como muchos principiantes tienden a hacerlo) si no que la herencia sea usada exactamente donde la necesitas y cuando sea necesario.

Lo del diseño por contrato, habla de que uses la mayor cantidad de interfaces posibles en tus diseños, una interfaz es eso un contrato de diseño, cuando tu implementas una interfaz, estas obligado a implementar los métodos de esa interfaz.

Lo que se refiere es que en tus clases en lugar de aceptar objetos concretos, acepten interfaces, así haces tu diseño más dinámico, y aparte con mucha escalabilidad a futuro, aparte de que puedes sustituir una clase por otra ya que ambas implementan la interfaz.

Saludos.