Programación Orientada a Objetos en Javascript

Aprender a crear aplicaciones complejas es mucho más que tan solo escribir lineas y lineas de código, hasta cierto punto te sentiras estancado y no sabrás como estructurar una aplicación a medida que esta crece. es por eso que en esta ocasion voy a enseñarte como aplicar la programación orientada a objetos en Javascript.

Javascript ya no es un lenguaje tan solo para escribir algunos scripts, sino un lenguaje para crear aplicaciones complejas. Desafortunadamente, muchos creen que Javascript no puede competir con otros lenguajes de programación como C++, Java o C#. Muchos desarrolladores con un trasfondo en los típicos lenguajes Orientados a Objetos, creen que javascript no tiene las características para ser considera un Lenguaje orientado a Objetos. Así que para entender un poco mejor a Javascript y como usarlo con el paradigma de orientación a Objetos. me he dado a la tarea de crear un Curso compuesto en Vídeo, que seran publicados en el canal de youtube y Texto que es la publicación que estas leyendo.

Principios de la Programación orientada a Objetos
En lenguajes como C#, java, smalltalk, objective-c y muchos otros, la ventaja de este paradigma es el de promover el diseño modular, la reusabilidad de codigo y desarrollar software complejo. sin embargo la programación orientada a objetos no esta estandarizada de manera formal, lo que quiere decir que no hay un documento que diga que es y que no es. pero la definicion esta basada en publicaciones de investigadores. Aqui puedes encontrar una discusion de intentos de definir la programación orientada a objetos.

Pero una definicon aceptada para definir un lenguaje orientado a objetos debe cumplir dos requerimientos:

  • permitir modelar a traves de objetos
  • soporte algunos principios que garantizen la modularidad y la reusabilidad de codigo
Para cumplir el primer requerimiento, el lenguaje debe facilitar permitir usar objetos y definir relaciones entre ellos, como las siguientes:

  • Association, la capacidad de hacer una referencia a otro objeto independiente
  • Aggregation. la capacidad de un objeto para emebeber a otros objetos indpendientes.
  • Composition.la capacidad de un objeto para emebeber a otros objetos dependientes.
El segundo requerimiento se cumple por las caracterisiticas del lenguaje:

  • Encapsulation. es la capacidad para concentrar en una sola entidad, sus datos y el codigo que lo hace funcionar, ocultando sus detalles internos. 
  • Inheritance. mecanismo en el que un objeto adquiere una o todas las caracterisiticas de uno o muchos objetos.
  • Polymorphism. capacidad para procesar objetos diferentes basados en sus tipos de datos o estructuras.
Estos puntos permiten clsaificar un lenguaje como orientado a objetos o no.

¿Javascript es Orientado a Objetos?


Comentarios