qwertyu

Páginas: 12 (2779 palabras) Publicado: 21 de marzo de 2013
Programación Orientada a Objetos: Clases versus Prototipos1
Pedro Cuesta Morales (pcuesta@uvigo.es)
Departamento de Lenguajes y Sistemas Informáticos
Universidad de Vigo
Resumen: En este artículo se introducen los aspectos básicos de la programación orientada a objetos con
prototipos, en comparación al modelo tradicional basado en clases. Este nuevo enfoque está basado en la
creación deobjetos por copia de un prototipo, objeto con estructura, comportamiento y estado definidos. Al no
utilizar clases el papel que éstas desempeñan se lleva a cabo mediante mecanismos alternativos. Los lenguajes
basados en prototipos difieren en el mecanismo de compartir propiedades, la forma de propagar cambios en los
objetos, los modelos de herencia y de tipos. Entre sus ventajas hay que destacarque facilitan la realización de
cambios individuales a objetos y permiten comportamiento dinámico. La principal limitación de este modelo es la
falta de herramientas apropiadas.
Palabras clave: clase, objeto, prototipo, herencia, delegación, persistencia, Self, Omega, Kevo.

1. Introducción.
El objetivo fundamental de este artículo es presentar las características básicas de la
programaciónorientada a objetos con prototipos, como una forma diferente de abordar el
desarrollo de software. La mayoría de herramientas orientadas a objetos están basadas en la
utilización de clases, sin embargo, los lenguajes basados en prototipos no utilizan ninguna noción
formal de clase, los objetos se crean mediante un proceso de copia o clonación, a partir de otros
objetos ya existentes oprototipos.
La distinción entre el modelo de clases y el de prototipos refleja una disputa filosófica tradicional
acerca de la representación de abstracciones [Taivalsaari 97]. Platón vio formas (estables,
abstractas, descripciones "ideales" de cosas) que tienen una existencia más real que las instancias de
esas cosas. Lenguajes basados en clases, como Smalltalk o C++, son platónicos en su usoexplícito
de clases para representar similitud entre colecciones de objetos. Lenguajes basados en prototipos,
como Self, Omega o Kevo, representan otra visión en la cuál no se confía tanto en la ventajosa
categorización y clasificación, sino que se intenta que los conceptos del dominio del problema sean
tan tangibles e intuitivos como sea posible.
Un argumento típico a favor del acercamiento basadoen prototipos, lo constituye el hecho de
que parece ofrecer mejores resultados tratar primero con ejemplos específicos y después con

1

Publicado en Novática, num. 144, Páginas 69-72, Marzo-Abril 2000.

generalizaciones de estos, que inicialmente comprender los principios generales de abstracción, para
posteriormente aplicarlos a casos particulares [Lieberman 86].
Este artículo comienzacon una revisión del papel que desempeñan las clases en la programación
orientada a objetos. A continuación se introducen los aspectos básicos de la creación de objetos
mediante prototipos. Se hace un estudio comparativo de diversos lenguajes con prototipos
existentes y se presentan sus principales diferencias. Se describen algunas de las ventajas y
limitaciones de los sistemas basados enprototipos, para finalizar con algunas conclusiones generales
sobre este nuevo enfoque de programación.

2. Papel de las Clases en el Modelo OO.
Uno de los pilares fundamentales del modelo de objetos es la utilización de clases. La
programación con prototipos permite demostrar un hecho importante, las clases no suponen una
necesidad práctica en el desarrollo orientado a objetos [Hallman 97]. Loslenguajes basados en
prototipos prescinden de ellas y sus funciones se llevan a cabo mediante mecanismos alternativos.
En el modelo orientado a objeto estándar, uno de los principales papeles de una clase es definir
la estructura y comportamiento de un conjunto de objetos. Mediante una clase se detallan los
atributos y métodos que compartirán todas sus instancias y que determinan su estado...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • qwertyu
  • qwertyu
  • Qwertyu
  • qwertyu
  • Qwertyu
  • qwertyu
  • qwertyu
  • qwertyu

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS