La (POO) según mi punto de vista.

 Que es la Programación Orientada a Objetos

    Es un modelo que busca estructurar el software de una manera mucho mas cercana a como percibimos el mundo. En lugar de ver el código como una lista de ordenes lo dividimos en piezas llamadas objetos dichas piezas son independientes la una de la otra. Cada uno de estos elementos guarda su propia información, y son capaces de realizar acciones especificas, esto permite que el desarrollo sea mas ordenado y fácil de escalar mediante va creciendo el proyecto.  

    Para que esto funcione, nos apoyamos en las clases, que actúan como una plantilla de diseño. Por ejemplo, si definimos una clase para representar un jugador, ahí especificamos que datos necesita, como su nombre o su posición, y que es lo que puede hacer, como saltar, defender o rematar. A partir de ese molde, podemos crear todos los objetos que necesitemos, cada uno con sus valores pero compartiendo la misma estructura lógica.

    Uno de los beneficios mas grandes que tiene este enfoque es la capacidad del poder reutilizar código de manera eficiente. Gracias a la herencia no es necesario desarrollar un nuevo código desde cero simplemente podemos basarnos en el que ya tenemos y adaptarlo a lo que necesite el cliente. Esto ahorra  tiempo y ayuda a que el mantenimiento del sistema sea mas rápido y menos tedioso ya que al surgir un error sabemos en que punto exacto del código buscar.

    En la practica este enfoque es el idóneo para las industrias ya que facilita de una gran manera el trabajo en equipo. Al estar todo aislado un trabajo puede encargarse de funciones como la lógica de los usuarios mientras que otro se encarga de los sistemas de inventario sin tener que estar al pendiente de que se crucen sus líneas de código y se vuelva todo un desastre. Al final esto ayuda a construir sistemas robustos en los que cada componente tiene su función bien definida.




Los 4 pilares fundamentales de la (POO)

La Abstracción: Es el primer paso de la (POO) y se basa en quedarnos solo con lo importante o esencial que necesitamos. Cuando se diseña una clase no es obligatorio añadir cada detalle de los objetos, sino solo las características que serán necesarias para nuestro programa. Esto se hace mas que todo para filtrar lo complejo de los objetos. Por ejemplo: Al momento de comprar un carro lo esencial seria saber su precio y no de que material estan forjado los tornillos que sostienen el escape.


El Encapsulamiento: Es el protector de la información de nuestros objetos. Este agrupa los datos y los métodos que los manejan en una unidad única, para así resguardar los detalles de terceros. Esto se hace para evitar que alguien modifique los datos de un objeto de manera externa o accidental. Esto da un control total de como se usa la información y evitamos que un error por parte del sistema termine colapsando el resto del programa y rompiendo todo lo demás.

La Herencia: Esta es la herramienta que nos ayuda a evitar el trabajo repetitivo y hacer tan vistoso este enfoque. Gracias a este pilar se pueden crear clases nuevas a partir de clases ya existentes heredando como dice su nombre todas sus capacidades y añadiendo solo lo que las hace diferentes. Imaginemos que tenemos un carro con todas sus características como la velocidad y los asientos, luego puedes crear un avión a partir de sus mismas características pero añadiéndole la función de vuelo.

El Polimorfismo: Es el pilar que le da la versatilidad que necesita el sistema, permitiendo que una misma orden se ejecute de manera distinta dependiendo quien la reciba esto asemejándose al pensamiento y criterio humano. Aunque el mensaje sea el mismo cada objeto tiene una manera distinta de interpretarlo y reaccionar dependiendo su naturaleza. Por ejemplo: si le pedimos comunicarse a un objeto tipo perro este ladrara pero si se lo pedimos a uno tipo gato el sonido generado será distinto.


Ventajas de la (POO)

Reutilización: Es la razón por la cual la herencia es tan llamativa en este enfoque, como todo esta organizado en clases si ya lograste armar una lógica que funcione de manera perfecta simplemente se crea una clase que herede estos atributos. Esto hace que el trabajo vaya con mucha mayor fluidez ahorrando tiempo valioso y recursos a la empresa o persona que esta a cargo de realizar el programa y trayendo una mayor satisfacción al cliente.


Mantenimiento: En la programación pasada un pequeño cambio en la linea 10 afectaba a la linea 200 esto se solucione gracias a este enfoque ya que al estar todo encapsulado los errores quedan atrapados dentro de los objetos en donde surgieron. Esto hace que el mantenimiento de los programas se vuelva mas sencillo y no tan tedioso ya que al a ver una falla se sabe al 100% la linea de código en la que esta albergada y su solución se vuelve rápida.    


Escalabilidad: Gracias a todas las características antes mencionadas de este enfoque es que la forma de crecimiento de los programas se a vuelto tan eficiente y orgánica. Si el día de mañana una persona u organización desea que su sistema haga algo nuevo es tan sencillo como encajar la pieza que falta en el sistema como si de un rompecabezas se tratara volviendo el programa versátil y ágil al momento de su ejecución.



Conclusión



Autor:

Jose Cabello, 31.211.413

Comentarios

Entradas más populares de este blog

Software Usados en Investigación de Operaciones: QM for Windows