✒️ABAP Las Interfaces
ABAP Las Interfaces
Lección 5: Interfaces
1 Introducción a Interfaces
Las clases, sus instancias (los objetos) y el acceso a los objetos usando variables referenciadas son la base de la programación orientada a objetos en ABAP.
Además, hay veces en las que es necesario para clases similares proporcionar funcionalidades similares pero que están codificadas diferentes en cada clase, las cuales dan un punto de contacto común con el usuario.
Por ejemplo, podríamos tener dos clases similares, cuenta corriente y cuenta de ahorro, las cuales tienen un método para calcular las comisiones del año, las interfaces y nombres de los métodos son los mismos pero la implementación es diferente. El usuario de las clases y las instancias tiene que ser capaz de ejecutar el método para todas las cuentas sin preocuparse del tipo de cada cuenta individual
Con los objetos ABAP esto es posible mediante el uso de las interfaces.
2 Que son las Interfaces?
Son estructuras independientes que se pueden implementar en una clase para extender el ámbito de esa clase.
El ámbito específico de una clase viene definido por sus componentes y sus secciones de visibilidad. Por ejemplo, los componentes públicos de una clase definen su ámbito público, que todos sus atributos y los parámetros de los métodos pueden ser utilizados por todos los usuarios.
Los componentes protegidos de una clase definen su ámbito en lo que se refiere a sus subclases. Las interfaces extienden el ámbito de una clase añadiendo sus propios componentes a la sección pública. Esto permite a los usuarios acceder a diferentes clases por medio de un punto de contacto común.
Las interfaces junto con la herencia proporcionan uno de los pilares básicos de los polimorfismos, ya que permiten que una solo método con una interface distinto en diferentes clases.
Audio tips: las interfaces permiten utilizar diferentes clases de manera uniforme, aprovechando las referencias a las interfaces es decir el polimorfismo
Por ejemplo las interfaces implementadas en diferentes clases amplían el ámbito público de la clase en el mismo conjunto de componentes, si la clase no tiene ningún componente publico especifico de ella misma entonces las interfaces describe completamente el ámbito púbico de la clase.
3 definiciones de una interface
INTERFACE <interface>
….
ENDINTERFACE.
La definición contiene la declaración de todos los componentes (atributos, métodos y eventos) de la interface. Se pueden definir los mismos componentes en una interface que en una clase.
Los componentes de las interfaces no tienen que ser asignados a ninguna sección de visibilidad ya que automáticamente pertenecen a la sección publica de la clase en al que la interface es implementada
Sabías que: las interfaces no tienen una parte de implantación ya que sus métodos son implementados en la clase que implementa la interface.
4 Implementación de Interfaces
<interface~componente>.
La clase tiene que implementar los métodos de todas las interfaces implementadas en ella. La parte de implementación de la case debe contener la implementación de cada método de la interfaces
METHOD <interface~metodo>.
….
ENDMETHOD.
Las interfaces pueden ser implementadas por diferentes clases. Cada una de las clases es ampliada con el mismo conjunto de componentes, aunque los métodos de la interface pueden ser implementados de manera distinta en cada clase.
5 Referencias Internas
Las variables referenciadas permiten acceder a los objetos. En lugar de crear variables referenciadas con referencia a una clase, se pueden crear con referencia a una interface.
Este tipo de variable referenciada puede contener referencias a los objetos de las clases que implementen esa interface.
Para definir una referencia a una interface se usa la siguiente adición:
TYPE REF TO <interface>
Recuerda: la interface que utilicemos para definir la referencia debe haber sido declarada en el programa antes que esta declaración tenga lugar.
Una variable referenciada con el tipo de referenciado a una interface se llama variable referenciada a una interface, o interface simplemente.
Una referencia a interface permite al usuario usar la siguiente declaración-
<ireferencia>-><componente>
Para acceder a todos los componentes visibles de la interface del objeto al cual la referencia está apuntando.
Este permite al usuario acceder a todos los componentes del objeto que fueron añadidos a su definición al implementar la interface.
6 Direccionar y asignar objetos usando referencias a interfaces:
Para crear un objeto de la clase primero se tiene que haber declarado una variable referenciada con referencia a la clase.
Si la clase implementa una interface, se puede usar la siguiente asignación entre variables referenciada a la clase y una referencia a interface, para hacer que la referencia a interface apunte al mismo objeto que la referencia a clase en:
<ireferencia>=<creferencia>
Si la interface contiene un atributo dependiente de instancia y un método dependiente de instancia se puede direccionar los componentes de la interface como describimos a continuación.
Usando la variable referencia a una clase:
Ø Para acceder a un atributo utilizaremos lo siguiente
<creferencia>-><interface~atributo>
Ø Para acceder al método utilizaremos
CALL METHOD <creferencia>-><interface~atributo>
Usando la variable referencia a una interface
Ø Para acceder a un atributo utilizaremos:
<ireferencia>-><atributo>
Ø Para acceder al método utilizaremos
CALL METHOD <ireferencia>-><metodo>
Siempre que los componentes estáticos de las interfaces estés implicado, solo se puede usar el nombre de la interface para acceder a las constantes:
Ø Para acceder a una constante utilizaremos los siguiente:
<interface>=><constante>
Para todo los demás componentes estáticos de una interface, solo se pueden usar referencias a objetos o la clase que implementa la interface:
Ø Para acceder a un atributo estático utilizamos:
<clase>=><interface~atributo>
Ø Para llamar a un método estático utilizaremos:
CALL METHOD <class>=><intf~meth>
7 Ejemplo de Interface
A continuación veremos un Ejemplo de una programa ABAP que utiliza interface. Aquí declaramos la interface ESTADO y las clases CONTADOR y BICICLETA. Dentro de la sección pública de ambas clases declaramos la interface ESTADO.
Luego dentro del evento START-OF-SELCTION creamos los objetos CUENTA y BICI. Ejecutamos los métodos CUENTA->INCREMENTAR y BICI->MANEJAR, almacenamos los resultados en la tabla TI_ESTADO y recorremos la tabla llamando al método IMPRIMIR.
La salida por pantalla del programa será
Audio Tips: las interfaces son objetos que se pueden declarar local y globalmente en un programa ABAP atreves del repositorio R/3, en la transacción SE24, si se declaran globalmente estas se almacenaran en un tipo especial del programa ABAP llamado INTERCEPOLL el cual es de tipo j y sirve de contenedor del respectivo tipo de objeto cada pool de interface contiene la definición de una salo interface, este programa es generado automáticamente cuando creamos la interface global. Un pool de interfaces es comparado a un modo pool o a un grupo de funciones, los pool de interfaces no contienen ninguna sentencia ejecutable, cuando se implementa una interface en una clase, la definición de la interface queda implícitamente queda incluida en la definición de la clase.
 
 
 
Sobre el autor
Publicación académica de Jhon Deibys Cano Pineda, en su ámbito de estudios para la Carrera Consultor ABAP.
Jhon Deibys Cano Pineda
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WZ11E
✒️Autor de: 118 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jhon Cano Pineda