3. En la programación, los objetos contiene
información que permite definirlo e identificarlo
frente a otros objetos de la misma clase y a los de
otras clases; teniendo así valores bien diferenciados
en sus atributos.
A su vez, los objetos disponen de mecanismos
llamados método, que favorecen la comunicación
entre ellos. Como se conoce en el mundo de la
Programación Orientada a Objetos existen dos tipos
de enlaces los de la unión temprana o enlace estático
y enlace tardío (Late Binding) o unión dinámica.
INTRODUCCIÓN
4. Mecanismo de programación
de computadoras en el que se
llama al método sobre un
objeto, es buscado por su
nombre en tiempo de
ejecución.
LATE BINDING
5. HISTORIA
1960
1980
1990
2000
El término "late binding" se remonta a
por lo menos la década de 1960, en los
que se puede encontrar en las
Comunicaciones de la ACM. El término
fue ampliamente utilizado para describir
lenguajes como LISP, aunque
generalmente con connotaciones
negativas sobre el rendimiento.
Popularizó La Programación Orientada A
Objetos (POO) y con ella el enlace en
tiempo. Dr. Alan Kay dijo una vez: "POO
para mí significa sólo mensajería,
retención local, y la protección y
escondite de proceso estatal y extrema. Se
puede hacer en Smalltalk y en LISP de
todas las cosas de enlace tardío.
Microsoft promovió fuertemente su
estándar COM como una interfaz binaria
entre diferentes lenguajes de
programación orientada a objetos. COM
programación igualmente promovió
enlace primero y reciente, con muchos
idiomas apoyando tanto a nivel de
sintaxis.
Alex Martelli acuñó el término "duck
typing" para referirse al mismo concepto,
pero con un énfasis diferente. Mientras
que el enlace en tiempo generalmente se
centra en los detalles de implementación,
la tipificación de pato se centra en la
capacidad de ignorar tipos y concentrarse
en los métodos de un objeto tiene
actualmente.
6. IMPLEMENTACIONES DE LATE BINDING
La lista de métodos de un
objeto puede ser alterado
durante la ejecución.
En lenguas de tipo dinámico
Normalmente ocurre cuando se
utiliza la palabra clave virtual en
la declaración de un método.
En C++
Una llamada a un método de
enlace en tiempo se lleva a cabo
mediante la interfaz IDispatch
En idiomas COM
7. IMPLEMENTACIONES DE LATE BINDING
Proporciona API de reflexión que
realizan llamadas a finales vinculantes
posibles. El uso de estas llamadas
varía según el lenguaje.
En .NET
Los tipos están unidos estáticamente,
comprueban durante la compilación
diferentes implementaciones para las
clases.
En Java
Una marca de tiempo se comprueba
para verificar que el procedimiento
almacenado no ha cambiado desde
que se compila el código.
Temprana vs. el enlace
reciente en PL / SQL y ADA
8. CRÍTICA
Tiene el rendimiento más
pobre que una llamada de
método vinculado temprano.
En la mayoría de las
implementaciones de la dirección de
método correcto debe ser buscado
por su nombre con cada llamada.
Tardío impide necesariamente el
uso de la comprobación de tipos
estáticos.
9. CRÍTICA
El compilador tiene que
asumir que existe el método.
Un error de ortografía simple puede
causar un error de tiempo de
ejecución para ser lanzado.
Evita muchas formas de análisis
estático que necesita un entorno
de desarrollo integrado
10. USO DE LOS LATE BINDING
Cuando múltiples clases, en una
jerarquía de clases, contienen
diferentes implementaciones del
mismo método.
Modificar el
comportamiento de un
código compilado.
Módulo nuevo que maneje
nuevos tipos sin necesidad de
modificar el código fuente y
recompilarlo.
Extender una librería de clases
aunque no se tenga el código
fuente.Una ventaja del late binding
es que no es costoso en
tiempo de ejecución.
11. EJEMPLOS
class Padre {
void imprimir() {
System.out.println("Imprimir
en Padre");
}
}
class Hijo extends Padre {
// implementar imprimir()
void imprimir() {
System.out.println("Imprimir
en Hijo");
}
}
class Principal {
public static void main(String
args[]) {
Padre miPadre = new
Padre(); // objecto de la clase
Padre
Hijo miHijo = new Hijo(); //
objecto de la clase Hijo
Padre unObjeto;
//Declaración de un objeto de
la clase Padre
unObjeto=miPadre; //
unObjeto es una referencia al
objeto miPadre
unObjeto.imprimir();
unObjeto=miHijo;
unObjeto.imprimir();
}
12. CONCLUSIONES
La programación orientada a objetos permite la optimización del código
generado gracias a que mediante técnicas de herencia, atributos estáticos
entre otros permiten, que el código sea genérico de manera que sea
reutilizable
Mediante las técnicas aprendidas en el presente curso podemos
establecer una solución primitiva de un problema real, tan solo con
relacionarlo con objetos lógicos que serán usados para el desarrollo del
software.
Los El Late binding permite modificar el comportamiento de un código
compilado sobre la ejecución del mismo código.