La programación orientada a
objetos se convirtió en un paradigma en el desarrollo de software cuando
los programadores de computadoras aprendieron los beneficios
de manejar el código de una forma modular.
Definiendo los
"objetos" que representan la información que el programador utiliza a
lo largo del programa, el programador, y otros programadores, pueden construir
esos objetos para crear un software más complicado. El corazón del desarrollo
de software de objetos son los conceptos de encapsulación de datos y
abstracción, junto con las nociones de herencia y polimorfismo.
Encapsulación
Cuando se escriben clases, una
buena práctica de programación orientada a objetos requiere que los
programadores "encapsulen" datos lejos de usuario del
objeto. Esto significa que cualquier dato o función dentro de una clase no debe
estar accesible para el usuario sin una modificación del programador. Un buen
ejemplo son las funciones de "obtener" y "configurar"
incluidas en la mayoría de las clases. Estas funciones controlan la forma en
que el usuario puede ingresar a las variables de datos en un objeto, y aseguran
que todos los datos se pueden considerar legitimados para el uso. Esto limita
la preocupación sobre los datos corrompidos, o la manipulación ilegal de datos por
parte del usuario.
Abstracción
Un beneficio de la programación
orientada a objetos es que retira al usuario del requisito de saber cómo
funcionan otros códigos. Este beneficio, llamado abstracción, significa que el
usuario implementando un objeto creado por otro programador para realizar una
tarea en particular no necesita saber cómo completa ese objeto su tarea. De
esta forma, el usuario se puede concentrar en sus propios problemas, en lugar
de preocuparse por la implementación de un objeto que podría querer utilizar.
Esto permite a los programadores construir software más grandes y más complejos
sobre objetos más pequeños.
Herencia
Otro beneficio de la programación
orientada a objetos es la herencia, que también permite a los programadores
construir programas más complejos desde partes más simples. La herencia es la
forma en que los objetos "heredan" su funcionalidad de otros objetos,
acomodándolas para sus necesidades. Por ejemplo, un objeto "profesor"
puede heredar su funcionalidad a un objeto "persona", porque el
profesor es una persona y requiere toda la funcionalidad del objeto persona
(junto con las funciones adicionales de un profesor). De esta forma, el
programador del objeto profesor no tiene que volver a reescribir el objeto de
persona para utilizarlo, simplemente puede dejar que el objeto profesor herede
sus funciones del objeto de persona.
Polimorfismo
El polimorfismo está unido a la
herencia, porque es la forma en la que un objeto que hereda de otro objeto
interactúa con ese objeto "base". Por ejemplo, el objeto profesor
puede heredar ciertas funciones de su objeto base (persona), pero cambiar una
de ellas. El objeto profesor aún puede utilizar las funciones de clase base
junto con su propia versión de la función que cambia. Incluso, durante la
ejecución de un programa el usuario puede declarar una variable para retener un
objeto de persona, pero posteriormente al programa decide que necesita un
objeto profesor más específicamente. En este caso, la variable separada para el
objeto persona puede sostener a un objeto de profesor, porque el profesor
hereda de (o es) un objeto persona.
No hay comentarios:
Publicar un comentario