Tabla de contenidos
En la programación orientada a objetos, o POO para abreviar, los datos y el código del programa se encapsulan en módulos claros y reutilizables, es decir, objetos. Esto reduce el esfuerzo de programación y ayuda a evitar errores.
La programación orientada a objetos (POO) describe un paradigma de programación, es decir, un principio básico según el cual las tareas se resuelven en un lenguaje de programación. La encapsulación de datos y código en objetos es característica de POO.
El acceso a los objetos solo es posible a través de interfaces proporcionadas por los propios objetos. Este aislamiento generalmente no es impuesto por el lenguaje de programación en cuestión; más bien, el desarrollador es libre de elegir cómo define sus objetos.
Los lenguajes orientados a objetos basados en clases también ofrecen la posibilidad de predefinir la estructura de los objetos en forma abstracta y pasarlos a subclases. Este concepto de clase se puede encontrar en los lenguajes más populares que siguen el paradigma POO.
POO en el contexto de paradigmas de programación comunes
Los lenguajes de programación orientados a objetos normalmente pertenecen a los lenguajes imperativos y procedimentales. Introduce el objeto como un nuevo módulo básico que combina datos y código de programa asociado en una unidad. Estos objetos se pueden utilizar de la misma forma que las variables, procedimientos y funciones de lenguajes similares no orientados a objetos.
Por tanto, el POO implementa una modularización y ofrece un mayor nivel de abstracción que, por ejemplo, un lenguaje de programación procedimental puramente imperativo. Además, un objeto tiene un estado y una referencia a sí mismo, que normalmente se puede evaluar mediante un atributo con el nombre «self» o «this».
Por qué POO: ideal de un programa sin errores
Al encapsular los datos y el código que los cambia o genera, los objetos se pueden verificar y probar de forma independiente entre sí y por otras partes del programa. Si las variables solo se pueden cambiar dentro del objeto en el que se definen como campos o atributos utilizando los procedimientos especificados allí como métodos, otras partes del programa no pueden tener ninguna influencia en la función del objeto.
Incluso el acceso de solo lectura a los datos desde fuera del objeto puede asumir que los valores siempre reflejan el estado actual guardado en el objeto. El POO puede asegurar su exactitud al verificar los datos de entrada cuando se transfieren al objeto usando los métodos apropiados. El correcto funcionamiento de estas secuencias de código (generalmente muy cortas) puede a su vez verificarse de forma completamente independiente de otras partes del programa.
POO – Don’t Repeat Yourself
Como cualquier modularización, la programación orientada a objetos facilita la reutilización de bloques de código. Esto ahorra tiempo de trabajo, pero sobre todo evita errores de copiar y pegar que pueden ocurrir fácilmente al copiar y adaptar partes del programa.
Los desarrolladores de Django, un marco de desarrollo rápido para aplicaciones web (CMS) escrito en el lenguaje de scripting orientado a objetos Python, acuñaron el eslogan «Don’t Repeat Yourself». Este principio se puede implementar particularmente bien con la ayuda de la herencia de lenguajes basados en clases. A diferencia de la copia de bloques de código, este tipo de reutilización mantiene una corrección ya verificada del código original.
Leer: ¿Qué es la herencia en POO?
La historia de la POO como breve resumen
Un concepto en el sentido del concepto actual de programación orientada a objetos apareció en el MIT ya en 1960, en el contexto de la investigación sobre inteligencia artificial y en conexión con el lenguaje de programación LISP. A mediados de la década de 1960, Simula 67 introdujo el concepto de clase, incluida la herencia y otras características orientadas a objetos. Influenciado por esto, el lenguaje Smalltalk surgió en Xerox PARC alrededor de 1970, que fue el primero en usar específicamente el término POO.
POO como una extensión de los lenguajes de programación existentes
En la década de 1990, los lenguajes de programación orientados a objetos popularizaron el concepto de programación orientada a objetos como extensiones de lenguajes generalizados, en su mayoría de procedimientos imperativos. Ejemplos importantes son C ++ y Java, ambos basados en C.
Este enfoque les facilitó posicionarse como un nuevo lenguaje en un entorno ya inconfundible. La posible combinación de programación orientada a objetos y programación simple de procedimiento imperativo con tal concepto conlleva el riesgo de perder las ventajas de la orientación a objetos mencionadas anteriormente.
Implementaciones inusuales de POO
Los lenguajes de programación existentes también se han ampliado para incluir funciones que permiten la programación orientada a objetos. Se puede encontrar una implementación inusual, pero apropiada para el lenguaje, en el lenguaje de secuencias de comandos Perl. Esto no oculta el atributo para autorreferencia como otros lenguajes de programación, pero lo trata como cualquier otro campo de datos. Es similar a un reloj de pulsera con fondo de cristal que revela el movimiento.
Por el contrario, el lenguaje de programación Eiffel introducido en 1985 no es solo uno de los pocos representantes de un POO puro, sino que también ofrece más que un lenguaje de programación. Se describe mejor como un método de desarrollo de software.