Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/08/2012, 10:51
Avatar de OsSk4R
OsSk4R
 
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 18 años, 2 meses
Puntos: 74
Respuesta: Principio de sustitución de Liskov (LSP)

Cita:
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.
Más sencillo imposible. O sea, así ¿no? :
Código PHP:
Ver original
  1. <?php
  2. class Perro
  3. {
  4.     public function comer()
  5.     {
  6.         echo "Estoy comiendo";
  7.     }
  8.  
  9. }
  10.  
  11. class PastorAleman extends Perro
  12. {
  13.  
  14. }
  15.  
  16. class Caniche extends Perro
  17. {
  18.  
  19. }
  20.  
  21. $perro = new PastorAleman();
  22. $perro->comer();

Cita:
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.
¡Perfecto una vez más!
La verdad es que al investigar el principio de segregación de interfaces me he dado cuenta de lo que dices, o sea, tienes razón en tener que utilizar la mayor cantidad de interfaces, ya que éstas, deben ser específicas y no genéricas...

En fin, una vez más enormes gracias GatorV por tu ayuda tan valiosa

Por cierto, esto de los principios S.O.L.I.D están pero que muy bien. Al verlos con detenimiento y comprenderlos te das cuenta de los útiles y necesarios que llegan a ser

Saludos y muchas gracias,