
La programación orientada a objetos (POO) en ABAPen ABAPProgramación de aplicaciones ) es un(Programación Avanzada de Aplicaciones Empresariales) es un paradigma de programación queque permite estructurar el código basándose en objetos , los cuales son instancias de clases que encapsque encapsulan datos y comportamientos relacionados.
En lugar de escribir programas puramente procedimentales (como se hacía en el clásico ABAP), con la orientación a objetos se busca modelar el sistema con componentes reutilizables, escalables y más fáciles de mantener.
Principales conceptos de la POO en ABAP
-
Ejemplo Clase ( CLASS) : define una estructura que contiene atributos (datos) y métodos (funciones).
Ejemplo:
CLASS lcl_person DEFINITION.
PUBLIC SECTION.
METHODS: say_hello.
ENDCLASS.
CLASS lcl_person IMPLEMENTATION.
METHOD say_hello.
WRITE: 'Hola desde la clase Persona!'.
ENDMETHOD.
ENDCLASS.
Objeto ( CREATE OBJECT) : Es una instancia de una clase.
DATA(lo_person) = NEW lcl_person( ).
lo_person->say_hello( ).
-
Encapsulamiento : Controla el acceso a los datos mediante las secciones PÚBLICA , PROTEGIDA y PRIVADA .
-
Herencia ( INHERITING FROM) : Permite que una clase herede atributos y métodos de otra.
-
CLASS lcl_employee DEFINITION INHERITING FROM lcl_person.
-
-
Polimorfismo padre .: La habilidad de una clase hija de redefinir (override) métodos de su clase padre.
-
Interfaces : Conjuntos de métodos sin implementación que una clase puede implementar, garantizando una estructura común.
-
¿Por qué usar POO en ABAP?
-
Mejor mantenimiento y legibilidad del código.
-
Reutilización de lógica.
-
Facilidad para trabajar con frameworks modernos de SAP como ABAP OO ALV , Web Dynpro , SAP Gateway , y ABAP RAP .
-
Ventajas de la Programación Orientada a Objetos en ABAP
-
Modularidad y reutilización
-
Encapsulamiento
-
Se pueden proteger los datos internos de una clase, exponiendo solo lo necesario.
-
Mejora la seguridad y evita efectos colaterales no deseados.
-
Escalabilidad
-
Herencia y polimorfismo
-
Permite extender comportamientos y crear jerarquías lógicas entre clases, reduciendo la redundancia.
-
Clases hijas pueden sobrescribir métodos para comportarse diferentes según el contexto.
-
Integración con herramientas modernas de SAP
-
ALV OO, Web Dynpro, Fiori, SAP Gateway, ABAP RAP, etc., todos usan o dependen de objetos.
-
Código más organizado y legible