LENGUAJE ABAP ORIENTADO A OBJETOS
¿QUÉ ES LA ORIENTACIÓN A OBJETOS?
La programación orientada a objetos es un método de desarrollo de software basado en el comportamiento real de los objetos en el mundo real. Se pretende desarrollar componentes de software que se comporten como los objetos reales a los que representan.
La orientación a objetos es una técnica usada en muchos lenguajes de programación los cuales comparten una terminología usada universalmente.
En esta sección se realizará una primera visión de conjunto de estos términos para en secciones posteriores adentrarse en la implementación de estos conceptos en el lenguaje ABAP.
Objetos
Un objeto es únicamente una porción de código fuente que contiene datos y proporciona servicios. Los datos constituyen los atributos del objeto. Los servicios que proporciona el objeto se conocen como métodos y se asemejan en su funcionamiento a las funciones. Normalmente los métodos operan con los datos privados del objeto, esto es, con datos que son sólo visibles para los métodos del objeto. De esta manera, los atributos de un objeto no pueden ser cambiados directamente por el usuario del objeto, sólo pueden ser cambiados por los métodos de ese objeto. Así se garantiza la consistencia interna del objeto.
Clases
Una clase es una entidad teórica que describe el comportamiento de un objeto. Desde un punto de vista meramente técnico, un objeto es una instancia en tiempo de ejecución de una clase. En principio se pueden crear cualquier número de objetos basados en una única clase. Cada instancia de una clase (objeto) tiene su propia identidad y su propio conjunto de valores para sus atributos. Dentro de un programa un objeto es identificado por su referencia, la cual le proporciona un nombre que define
inequivocamente al objeto y permite acceder a sus métodos y atributos.
Propiedades de los objetos
En la programación orientada a objetos, los objetos tienen normalmente las siguientes propiedades:
− Encapsulación – Los objetos restringen la visibilidad de sus recursos (atributos y métodos) al resto de usuarios. Cada objeto posee una interface que determina la manera de interactuar con él. La implementación del objeto (su interior) es encapsulada, lo que quiere decir que desde fuera el objeto es invisible, simplemente se usa.
− Polimorfismo – El polimorfismo quiere decir que métodos que se llaman exactamente igual pueden comportarse de manera distinta en clases diferentes. La orientación a objetos tiene unas estructuras llamadas interfaces que permiten acceder a métodos con el mismo nombre en diferentes clases. Dentro de cada clase particular se puede redifinir el método obteniendo distintos métodos con el mismo nombre. Asi es que un método no se define exactamente con su nombre, si no con su nombre
y el nombre de la clase a la que pertenece.
− Herencia – Se pueden utilizar clases existentes para originar nuevas clases. Las nuevas clases originadas heredan los datos y los métodos de la superclase. De cualquier manera, se pueden sobreescibir los métodos existentes, incluso añadir métodos nuevos.
Usos de la orientación a objetos
Las principales ventajas de la programación orientada a objetos son:
− Sistemas de software muy complejos se vuelven mucho más simples de comprender debido a que la orientación a objetos proporciona una representación mucho más cercana a la realidad que otras técnicas de programación.
− En un sistema correctamente diseñado con orientación a objetos es posible realizar cambios al nivel de la clases, sin tener que realizar cambios en ningún otro punto del sistema. Esto reduce significativamente el costo total del mantenimiento necesario.
− A través del polimorfismo y la herencia es posible la reutilización de componentes individuales.
− La cantidad de trabajo en revisión y mantenimiento del sistema se reduce debido a que muchos problemas pueden ser detectados y corregidos en la fase de diseño.
Para conseguir estos objetivos necesitamos:
− Lenguajes de programación orientados a objetos – Las técnicas de programación orientadas a objetos no utilizan necesariamente un lenguaje orientado a objetos, aunque la eficiencia del desarrollo depende directamente de la utilización o no de un lenguaje orientado a objetos.
− Herramientas orientadas a objetos – Estas herramientas permiten crear programas orientados a objetos en lenguajes orientados a objetos. Permiten además diseñar y almacenar los objetos desarrollados y las relaciones entre ellos.
− Diseño orientado a objetos – El diseño orientado a objetos de un sistema de software es, de todos los requerimientos para conseguir las ventajas arriba enumeradas, el más importante, el que más tiempo consume y el más dificil de llevar a cabo.