Sie sind auf Seite 1von 4

ESCUELA POLITCNICA NACIONAL

FACULTAD DE INGENIERA DE SISTEMAS


INGENIERA EN SISTEMAS INFORMTICOS Y DE COMPUTACIN6

PERODO ACADMICO: 2016_B


ASIGNATURA: APLICACIONES EN AMBEINTES PROPIETARIOS GR2
PROFESOR: ING. PAMELA FLORES
TIPO DE INSTRUMENTO: RESUMEN
TTULO: PRINCIPIO DE SUSTITUCIO DE LISKOV
FECHA DE ENTREGA: 12/12/2016
NOMBRE: OSCAR SAMBACHE

Enunciado del principio de sustitucin de Liskov


Barbara Liskov
Establece un principio en el que define una relacin tipo/subtipo basada en
el comportamiento, de forma que un tipo se considera subtipo de otro
cuando cualquier instancia del primer tipo puede aparecer en cualquier
lugar donde se espera una instancia del segundo.
El enunciado de este principio es el siguiente: Si para cada objeto o1 de
tipo S hay un objeto o2 de tipo T tal que para todos los programas P
definidos en trminos de T, el comportamiento de P no cambia cuando o1 es
sustituido por o2, entonces S es un subtipo de T [2].
El enunciado de este principio puede parecer un tanto abstracto, por lo que
vamos a plantearlo desde un punto de vista ms cercano a la programacin
orientada a objeto1 , con el fin de aclarar su significado. As, este principio
puede enunciarse como Las funciones que usan punteros o referencias a
clases base deben ser capaces de utilizar objetos de las clases derivadas sin
tener conocimiento de ello, o lo que es lo mismo
Las clases derivadas deben ser utilizables a travs de la interfaz de la clase
base, sin necesidad de que el usuario conozca la diferencia. La violacin de
este principio pone de manifiesto la importancia del mismo. Supngase una
funcin que utiliza un puntero a una clase base, pero que no cumple el
principio de Liskov, entonces esta funcin debe conocer de forma explcita
todas las clases derivadas de dicha clase base. Por tanto, esta funcin
violara el principio abierto/cerrado porque tendra que ser modificada cada
vez que se tenga que crear una nueva clase derivada de la clase base.

Ejemplo que NO cumple con el principio

Bsicamente, LSP afirma que si tenemos dos objetos de tipos diferentes


Coche y Ciclomotor que derivan de una misma clase base Vehculo,
deberamos poder reemplazar cada uno de los tipos Coche/Ciclomotor y
viceversa all dnde el tipo base Vehculo est implementado. En el
ejemplo anterior tenemos un claro caso de violacin del LSP, ya que la
ejecucin del mtodo CalcularImpuesto generar una excepcin de
conversin de tipo si el objeto pasado por parmetro es de tipo Ciclomotor
en lugar de Coche, pese a que ambas clases derivan de la misma clase base
Vehculo.

Ejemplo que SI cumple el principio


Vamos a ver en este ejemplo el diseo de una calculadora siguiendo el
principio LSP:
LSP es bsicamente una extensin del principio abierto-cerrado. Lo que nos
dice es que si tenemos una clase y varias subclases de esta al usar una
referencia a la clase principal esta debe ser capaz de aceptar cualquier
objeto de sus clases hijas.

CAPTUAS DE PANTALLA
Men para ejecutar cualquier opcin para la gestin de
estudiantes.

Opcin REGISTRAR

Opcin MODIFICAR

Opcin CONSULTAR

Das könnte Ihnen auch gefallen