La programación es muy extensa y existen muchas formas de programar, es tan amplia que incluso el proceso de aprendizaje podría ser confuso y frustrante.
Hablando en términos generales, a los estilos de programación se les llama paradigmas. El paradigma con el que todos aprendimos a programar es el secuencial o estructurado, aquí las instrucciones van de arriba hacia abajo, no tenemos que abstraer cosas complejas, simplemente damos ordenes una tras otra.
Cuando empiezas con proyectos más grandes te das cuenta de que este paradigma no te ayuda mucho. Imagina que un cliente te pide una tienda en línea para vender zapatos:
- Tienes los zapatos que tienen un precio, color, talla, marca, etc.
- Necesitas un carrito que se conecte con las pasarelas de pago.
- Tienes a los usuarios que van a hacer las compras.
Son muchas cosas y programar la tienda de arriba hacia abajo terminaría en un desastre, pero es la manera en la que nos enseñaron y así lo hemos hecho. Yo mismo he cometido este error y sé que mentalmente, dejar atrás este modelo de programación es muy difícil.
¿Que tienen que ver los objetos con la programación?
La programación orientada a Objetos es el paradigma más usado en el mundo. Cada uno de los elementos de la interfaz es un objeto y cada objeto tiene datos y funcionalidad.
Los zapatos son un objeto y, por lo tanto, tiene estas dos propiedades:
- Datos: Nombre, marca, color, talla, etc.
- **Funcionalidad:**Pueden ser agregados al carrito y pueden ser comprados.
Los usuarios también son un objeto:
- Datos: Nombre, número de tarjeta de crédito, etc.
- Funcionalidad: Pueden comprar zapatos.
Lo mismo pasa con el carrito:
- Datos: Zapatos agregados al carrito, usuario dueño de ese carrito, etc.
- Funcionalidad:Agregar o quitar zapatos, enviar la orden a la pasarela de pago, etc.
Con la Programación Orientada a Objetos pasamos de tener un código de arriba hacia abajo en el que las funcionalidades están mezcladas y son difíciles de separar o escalar, a un sistema en el que tenemos los elementos (Objetos) separados y se comunican entre ellos:
- El usuario se comunica con el producto para comprarlo.
- El producto se comunica con el carrito para ser agregado.
- El carrito se comunica con la pasarela de pago y con el usuario.
De esta manera es más fácil manejar y mantener un sistema, si necesitáramos una nueva funcionalidad podríamos sin problemas agregar un nuevo objeto o añadir datos y funcionalidades a los objetos que ya existen.
Atributos y métodos
Como dije antes, los objetos tienen datos y funcionalidad y en la POO se les llama de esta manera:
- Datos → Atributos
- Funcionalidad → Métodos
Abstracción
En palabras simples, la abstracción es pensar ¿Cuáles son los atributos y métodos que necesita un objeto? Imagina que estamos programando la aplicación de cursos de EDteam y queremos crear el objeto usuarios, ¿Qué atributos y métodos necesitamos?
Este es el resultado de nuestro proceso de abstracción
Clase
Las clases son plantillas que contienen la estructura básica de un objeto (Atributos y Métodos). En el ejemplo anterior donde realizamos el proceso de abstracción no creamos un objeto, en realidad creamos la plantilla en la que se basaran los objetos. Cada vez que alguien se registra en EDteam usara la clase (plantilla) para crear el objeto usuario.
Instancia
El proceso de crear un objeto a partir de una clase se llama Instanciary cada objeto creado también se le puede llamar Instancia. Con una sola clase podemos crear cientos de usuarios (Instancias) sin tener que escribir código para cada uno de ellos.
Programación Orientada Objetos en una aplicación real
El siguiente esquema representa el proceso que tiene que seguir un usuario para convertirse en un estudiante premium de EDteam.
Registro (Class Usuario)
- Recogemos las propiedades del nuevo usuario (nombre, apellidos, contraseña, etc) y creamos el objeto → usuario_528
Pagar (Class Orden_de_compra)
- Esta clase obtendrá las siguientes propiedades: Método de pago, id de usuario, etc y creará una instancia asociada a nuestro usuario_528 → Orden_de_compra_528
Pasar a premium (Class Premium)
- La clase premium tiene como propiedades: cursos, especialidades, clases en vivo, etc.
- Se crea el objeto → Premium_528 y se le asigna los beneficios al usuario_528
Como puedes ver, nuestros objetos se crearon a partir de clases ya establecidas en el sistema.
Espero que te haya gustado esta introducción a la programación orientada a objetos. Si quieres aprender más sobre este paradigma te invito a tomar nuestro curso de POO, en que aprenderás a:
✅ Comprender la programación orientada a objetos.
✅ Abstraer problemas en objetos.
✅ Aplicar este paradigma en distintos lenguajes.
También puedes ver el video donde tratamos con más profundidad este tema
Cuéntame en los comentarios si lograste comprender que es la Programación Orientada a Objetos Nos vemos la próxima con más contenido. Chau.