
William Charles
0
2755
209
Orientado a objetos no es solo una palabra de moda al azar que escuchas en los círculos de programación. Hay una razón detrás del nombre, pero ¿qué? Únase a mí mientras exploro algunos de los fundamentos de los conceptos de programación y explique por qué la programación orientada a objetos impulsa la tecnología detrás de cualquier software moderno y la contrasta con la programación basada en procedimientos y lógica..
Historia de la programación procesal
Cuando las computadoras se inventaron por primera vez, debían programarse explícitamente con instrucciones simples, y “software” era simplemente una colección de estos comandos extremadamente simples unidos que se ejecutarían en secuencia.
Inicialmente, estos códigos de máquina requeridos deben escribirse: mueva esto “poco” desde esta memoria a esta ubicación, y realizar una lógica “y” operación con este bit, etc., pero muy pronto estos fueron abstraídos a un nivel superior usando BASIC.
Sospecho que la mayoría de ustedes se han encontrado con BASIC (Código de instrucción simbólica para todo uso para principiantes) en la escuela. Es un ejemplo perfecto de un lenguaje de programación procesal. Incluso mi primera incursión de programación fue usar BASIC en un Amstrad CPC-64. Cada línea comienza con un número de línea, seguido de una simple instrucción en lenguaje legible por humanos..
Como los lenguajes de procedimiento siguen los comandos uno tras otro, generalmente es fácil para los humanos seguir lo que sucede en el programa. Sin embargo, también es difícil hacer algo más que un simple ejercicio de aprendizaje, lo que nos lleva a la creación de Programación Orientada a Objetos.
Orientado a objetos?
Con la programación orientada a objetos, la idea es agrupar las variables relacionadas y la funcionalidad en un solo objeto, que representa algún tipo de estructura de datos compleja. Ese objeto puede reutilizarse varias veces o extenderse para ser algo aún más complejo..
Por ejemplo, un juego puede tener un objeto jugador. Cada objeto de jugador en el juego representa un jugador único y real en nuestro imaginario juego en línea multijugador. Cada objeto de jugador tiene un apodo, una ubicación actual, un inventario y una velocidad de movimiento. Aunque cada jugador es único, aún queremos que compartan la misma funcionalidad de nivel base. Cada jugador puede tener un movimiento función, que hace que el jugador avance X número de casillas. Cada jugador puede tener una velocidad de movimiento diferente, pero cuando le decimos al jugador que se mueva con un comando, sabrá cómo reaccionar de acuerdo con su propia mecánica de Internet..
¿Por qué es útil esto? Tomando un ejemplo más real, porque las interfaces gráficas de usuario modernas serían imposibles sin objetos, todos los sistemas operativos proporcionan un objeto Window. Por lo tanto, es fácil tener un nuevo “ventana” completo con botones de cierre y pantalla completa, y la capacidad de moverse, sin tener que programarlo usted mismo. Todo lo que necesitas hacer es decir crear una ventana.
De hecho, el software moderno consta de miles y miles de objetos, no solo ventanas, sino también botones y campos de formulario, y cuadros de alerta también (que son un tipo especial de objeto de ventana), y es solo la forma en que están organizados y la lógica de interacción entre ellos que hace que este software sea diferente a los demás. Significa que los programadores y diseñadores de software son libres de concentrarse en hacer la mecánica central de su programa sin tener que reinventar la rueda cada vez.
Otra ventaja del diseño orientado a objetos es que la funcionalidad está separada e invisible entre sí. Entonces, cuando el jugador presiona la tecla de avance en nuestro juego, llamadas la función de movimiento en el objeto jugador. Si hacemos un pequeño cambio en cómo se realiza ese movimiento con precisión dentro del objeto del jugador, como saltar en lugar de caminar, entonces no necesitamos ajustar el oyente del teclado. Todavía llama “movimiento” independientemente de lo que ocurra internamente en el objeto reproductor, para que podamos cambiar la funcionalidad sin romper todo lo demás.
Lo mismo es cierto en los sistemas operativos: si el usuario de repente decide cambiar el color de su ventana a rojo, entonces no necesita detectar eso y hacer que la ventana también sea roja: todo está integrado en el objeto de la ventana.
Herencia
Una vez que tenemos objetos, también podemos extenderlos y heredarlos para producir objetos más útiles con diferentes comportamientos o funcionalidades adicionales. usted poder reinventa la rueda, si quieres. En nuestro ejemplo de jugador, tal vez queremos crear un “superhombre” objeto. Superman sigue siendo un jugador, al igual que todos los demás: también quiere un apodo y quiere aparecer en las mismas tablas de clasificación de jugadores, pero en lugar de la acción de movimiento estándar que lleva al objeto del jugador X espacios hacia adelante, queremos que lo haga. vuela en su lugar: mueve 10 casillas a la vez sobre la parte superior de cualquier objeto en el camino. Al extender el objeto jugador básico podemos “heredar” toda esa funcionalidad útil sin tener que volver a escribirla de nuevo, pero aún podemos “anular” la función de movimiento con nuestro movimiento especial de vuelo de superman!
La programación orientada a objetos es una revelación absoluta si solo hubiera experimentado la programación de procedimientos, y personalmente creo que es una pena que no se enseñe un tipo simple de lenguaje OOP en la escuela secundaria.
Una última cosa: lenguajes de programación basados en lógica
Estos son de particular interés para mí, ya que generalmente son más útiles para cualquier cosa relacionada con la Inteligencia Artificial. Los lenguajes de programación basados en la lógica, como Prolog, no usan comandos e instrucciones en el sentido tradicional. En cambio, resolverán un problema dado un conjunto de reglas y condiciones.
Piensa en una cena que organices para tu familia. Tu tía no puede sentarse al lado de tu tío porque discutirán; no quieres dos niños sentados juntos porque serán pequeños bribones; ciertamente no quieres sentarte entre dos niños. Eso es todo, ese es su programa Prolog escrito. Ahora solo dale una lista de niños y adultos que asistirán a la fiesta, y generará una lista de posibles sugerencias de asientos!
Espero que hayan disfrutado esta introducción de nivel principiante a los conceptos de programación. Lo siento, no pude entrar en más detalles y, por supuesto, hay un millón de cosas que no he tocado. Si desea obtener más información, hágamelo saber en los comentarios. ¿Quizás podríamos hacer una serie de tutoriales de programación orientada a objetos para principiantes para varios idiomas si hay suficiente interés? Asegúrese de revisar también nuestros archivos relacionados con la programación, que incluyen varias herramientas y sitios web de programación..
Haber de imagen: ShutterStock