Programación y desarrollo de software

La programación orientada a objetos y su paradigma

¿Qué es programación orientada a objetos?

Para explicar que es la programación orientada a objetos (Object Oriented Programming, OOP), debemos saber que es un estilo de programación especifica al uso del diseño y manejo de objetos u datos en lugar de las funciones y operaciones lógicas, para determinar que es un objeto por su estructura, ya que estos están creados a través de la combinación de datos el cual tiene propiedades y actitud única.

La programación orientada a objetos se centra en la manipulación de objetos que quieren lograr los desarrolladores en sus empresas, puesto que el planteamiento de este tipo de programación se ve reflejado en los programas que tienden a actualizarse constantemente o que son extremadamente grandes.

Este tipo de programación es usado por compañías grandes porque su implementación en el equipo de desarrolladores se vuelva beneficioso por el hecho de que permite hacer desarrollo colaborativo, pudiendo dividir proyectos y no afectara al programa final.

Cuando definimos que es un objeto dentro de nuestro código, es el momento el cual debemos saber que este objeto contiene sus propias etiquetas, las cuales pueden tender a cambiar sus valores, ya sea por ejemplo la entidad física, nombre, aspecto, estructura, valor, entre otros.

En la programación orientada a objetos, cada objeto que se relacione con la programación orientada a objetos entra en distintos tipos de datos, estos datos se manipulan a través de con secuencias lógicas llamados métodos y los objetos se comunican a través de mensajes que son interfaces definidas.

¿Por qué usar POO?

Un desarrollador que busca con la programación orientada a objetos, él busca que su código sea fácil de aprovechar nuevamente, se mantenga para usarlo después de un tiempo y que esté organizado. Ahí es cuando entra el desarrollador, porque él busca el desarrollo de un software diferente y no duplicado llamado DRY (don´t repeat yourself).

Cada vez que el desarrollador quiera crear algo innovador sin tener que replicar y crear programas ineficientes, además te facilitara adaptarte a un entorno diferente de trabajo por el cual estás empezando como desarrollador, pudiendo ahorrar tiempo, ganar experiencia y versatilidad en el nuevo ámbito que se está implementando.

Principios de la programación orientada a objetos

Programación orietnada a objetos

Encapsulación:

Cada objeto se mantiene en un estado privado dentro de una clasificación, no todos los objetos logran tener este estado, por lo que necesitan la asistencia de funciones o métodos notorios. Esta característica sirve para que los programas tengan una ocultación de datos, así precaviendo la corrupción de datos, y al mismo tiempo teniendo una seguridad mayor a comparación de no tener esta propiedad.

Abstracción:

Cuando un usuario interactúa únicamente con las propiedades y métodos preseleccionados de los objetos, usando herramientas simples , pero que tiene un alto nivel para acceder a un objeto complejo.

En la programación orientada a objetos, un programa tiende a pesar bastante por sus grandísimos procesos que conlleva, por tales el término de abstracción simplifica el cambio y corrección del código de gran tamaño, también usado por si se quiere actualizar la información del código.

La herencia:

Para cada usuario como tú o como yo debemos saber manejar las clases, por eso la herencia nos da la facilidad de crear jerarquías entres las clases y así reutilizarlas, esta jerarquía nos dice que las clases principales esparcen propiedades, métodos y comportamientos a las clases secundarias.

Cuando definimos propiedades y comportamientos así sean los más básicos es cuando se asignan relaciones y subclases entre objetos, así se van creando más objetos con los objetos preestablecidos anteriormente compartiendo y extendiendo sus características.

El polimorfismo:

Este concepto consiste en el diseño de objetos que su funcionalidad es compartir comportamientos, lo que nos permite como desarrolladores la capacidad de mostrar la misma interfaz en diferentes formas implícitas.

Este se combina con la herencia y al utilizarla, los objetos pueden quitarse los comportamientos compartidos por los objetos primarios, con los comportamientos secundarios específicos, también permite que el método se permita ejecutar en diferentes comportamientos como: anulación y sobrecarga de método.

Lenguajes de programación dirigidos a objetos

Hay muchos lenguajes de programación orientados a objetos, pero los más populares son los que presentaremos a continuación:

Java:

Es un lenguaje de programación hecho para la creación de objetos con la característica de estar centrado en la red por medio de aplicaciones, macrodatos, servidores y softwares.

JavaScript:

Este lenguaje de programación se centra específicamente en el manejo y uso de herramientas para páginas web, sus funciones van desde innovar el estilo de una página como tener contenido exclusivo en tu página web.

C++:

Es un lenguaje de programación que se basa en la manipulación de objetos y extiende su antecesor, tiene muchos usos, pero los que más usados es en el manejo y transferencia de información

Ruby:

Este lenguaje también tiene como objetivo la programación orientada a objetos, pero este es más “elegante” y hace que el código sea más difícil de hacer.

Scala:

Este lenguaje en específico está diseñado para expresar patrones de código de una forma, concisa, precisa y con tipado seguro, se usa en las empresas para software laborales y frameworks.

PHP:

El lenguaje de programación de PHP está totalmente apegado al manejo, personalización e innovación de las páginas web, diseñado para que sean más dinámicas, también es el que está detrás de la página web, enviar y recibir cookies.

Historia

Todo surge cuando Kristen Nygaard y Ole-Johan Dahl en 1967 introdujeron por primera vez los conceptos clases, rutinas, y subclases en un centro de cómputo en Oslo acompañado del lenguaje simula 67, la idea principal del experimento era integrar un tipo de entidades en una clase de objetos, donde cada clase sea capaz de definir sus propios factores, datos y comportamientos.

Fueron los desarrolladores que usaban Smalltalk quienes refinaron los comportamientos, datos y factores. Este sistema de lenguaje tenía la opción de crear y modificar “de paso” el código sin preocuparse por los programas estéticos que había en esa época.

La programación orientada a objetos se convirtió en el tipo de programación más conocido y usado de la época en 1980, debido a C++ termino de postrar su trono y más cuando su máximo auge llego con las interfaces gracias de usuario, las cuales ya tenía por defecto.

Los lenguajes de programación basados en el orientado a objetos fueron naciendo después, ya sea Python, Ruby, Java, Visual Basic.NET y los que no estaban adaptados a estos, tuvieron que adaptarse para así no quedar en la antigua década.

Tipos de programación orientada a objetos

Programación basada en clases:

Este enfoque en la programación tiene un gran amplio enfoque en diferentes programadores, como Java, C++ y C#. Esté tipo de programación organiza primero el código por clases y luego crea los objetos.

Las clases son patrones que representan un elemento dentro de un conjunto de objetos como personas, animales, operaciones, autos, gráficos, entre otros. Cada objeto creado en la clase se denomina instancia de la clase, los lenguajes de programación que soportan este enfoque se ven asociadas al término “caja negra”, la cual es la que añade procesos a la data que entro dentro de ella par dar de resultado datos u objetos refinados.

Programación basada en prototipos:

JavaScript, Python y Ruby son los únicos que manejan este enfoque. En esta clase de programación no hay clases, solo los objetos, pero se reutiliza con base en la clonación de objetos. Los objetos se crean y cuando se clona se cambia la estructura y ya.

Cuando un objeto se empieza a replicar se le puede añadir comportamientos, campos y métodos necesarios. Un objeto prototípico es un objeto que su función es servir de plantilla que a partir se obtiene las propiedades principales de un objeto, cada objeto se va pasando sus propiedades así sucesivamente hasta el final de todo.

Programación basada en estructuras:    

Rust, Go y Nim son lenguajes de programación compilados, por eso manejan este enfoque en específico.

En este tipo de programación su función es hacer construcciones definidas por el desarrollador, cada estructura es diferente y con específicas únicas ya sea sus comportamientos u atributos.

Cada estructura se le tiene que añadir una variable que sea de tipo puntero para así editar las funciones o métodos de la estructura. Para programar con este estilo se hace fácil porque cuenta con soportes genéricos como sus métodos e interfaces.

Los objetos en programación orientada a objetos

Los objetos son representaciones gráficas de una clase. A partir de una clase se generan elementos concisos, definidos como objetos, los cuales heredan los comportamientos y propiedades de la clase existente.

Cuando queramos crear un objeto tenemos que saber de qué clase queremos que venga. Esta acción se llama instanciar, para dar a entender esto se dará un ejemplo

miMascota = new Mascota()

Con “new” damos a conocer que se está creando una instancia en la clase existente

La clase se designa con “Mascota”, con “new” se crea la instancia de la mascota, y el objeto que designaremos será almacenado en la variable “miMascota” que ya está integrada a la clase.

video explicativo

creditos:

Autor: Miguel Ángel Lamprea Pérez

Editor: Carlos Iván Pinzón Romero

Código: UCPA-1

Universidad: Universidad Central

colaboradores de Wikipedia. (2023). Programación orientada a objetos. Wikipedia, la enciclopedia libre. https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos#Algunos_lenguajes_orientados_a_objetos
Qué es la programacion orientada a objetos. (s. f.). DesarrolloWeb.com. https://desarrolloweb.com/articulos/499.php
Canelo, M. M. (2023). ¿Qué es la programación orientada a objetos? Profile Software Services. https://profile.es/blog/que-es-la-programacion-orientada-a-objetos/#4_Principios_de_la_Programacion_Orientada_a_Objetos
 TechTarget, C. (2021). Programación Orientada a objetos, OOP. ComputerWeekly.es. https://www.computerweekly.com/es/definicion/Programacion-orientada-a-objetos-OOP
  Profile. (s.f). POO [imagen]. profile .https://profile.es/wp-content/media/POO.jpg
Grennvector. (s.f). Oop letters vector image [imagen].VectorStock. https://www.vectorstock.com/royalty-free-vector/oop-letters-vector-8757750
Scrum. (s.f). pilares de la poo.Scrum .https://3.bp.blogspot.com/-Por7UjgJSOc/TfopbehjdtI/AAAAAAAAAK0/cDFLBvreXg0/s400/M.png
colaboradores de Wikipedia. (s.f). Oop-uml-class-example . Wikipedia, la enciclopedia libre. https://es.wikipedia.org/wiki/Archivo:Oop-uml-class-example.png
EDteam. (2019, 20 junio). ¿Qué es la programacion orientada a objetos? - La mejor explicación en español [Vídeo]. YouTube. https://www.youtube.com/watch?v=DlphYPc_HKk