domingo, 2 de julio de 2017

¿Qué es la programación orientada objetos?

POO:
La programación orientada a objetos o también conocida como POO o OOP en sus siglas en inglés, se enfoca en los elementos de un sistema, sus atributos y las interacciones que se producen entre ellos para diseñar aplicaciones informáticas. Los elementos abstractos del modelo orientado a objetos se denominan clases.

Un programa orientado a objetos: es esencialmente una colección de objetos que se crean, interaccionan entre sí y dejan de existir cuando ya no son útiles durante la ejecución de un programa. Una aplicación informática puede llegar a ser muy compleja.
La complejidad: es más manejable cuando se descompone y se organiza en partes pequeñas y simples, los objetos.

Un programa Java utiliza clases y objetos. Las clases representan un esquema simplificado de la perteneciente de una aplicación informática. Una clase es una representación abstracta de un conjunto de objetos que comparten los mismos atributos y comportamiento, es decir, una clase describe un tipo de objetos. Un objeto es una instancia de una clase, tiene una identidad propia y un estado. La identidad de un objeto se define por su identificador. El estado de un objeto se define por el valor de sus atributos.

El comportamiento de un objeto queda determinado por el comportamiento la clase a la que pertenece. Los objetos son unidades indivisibles y disponen de mecanismos de interacción llamados métodos.

Para entender el concepto de objeto es necesario saber que existe una relación directa entre los elementos que forman parte de una aplicación informática y los objetos. Normalmente, para identificar los elementos de una aplicación, debemos fijarnos en los sustantivos que utilizamos para describir los objetos reales del sistema. Para diseñar una aplicación orientada a objetos es necesario responder las siguientes preguntas:

  • ¿Cuáles son los elementos tangibles de un sistema?
  • ¿Cuáles son sus atributos?
  • ¿Cuáles son sus responsabilidades?
  • ¿Cómo se relacionan los elementos del sistema?
  • ¿Qué objeto debe “saber”?
  • ¿Qué objeto debe “hacer”?


Por ejemplo:
Si se desea diseñar un programa Java para gestionar las ventas de una tienda, entonces habría que identificar y describir las características elementos como: cliente, tipo de cliente, producto, pedido, tipo de entrega, forma de pago, unidades en existencia de los productos,
Entre otras. Los procesos de gestión de la tienda incluirían el registro de los clientes, el registro de los productos de la tienda, el proceso de compra del cliente y la realización de los pedidos, la entrada y salida de productos del almacén, entre otras.

Ejemplo 2:

Si en vez de una tienda se trata de una aplicación para dibujar figuras geométricas en dos dimensiones, entonces sería necesario identificar y describir las características de las figuras y su posición. En este caso habría figuras de tipo círculo, rectángulo, triángulo, entre otras. Las operaciones a realizar con las figuras incluirían dibujar, borrar, mover o rotar.