Archivos de Categoría: Patrones de diseño

Patrón de diseño Observer

En este ejercicio vamos a solucionar la siguiente petición: Tenemos un blog donde se publican artículos y es necesario añadir una nueva funcionalidad para que el administrador del blog sea notificado cada vez que se publica un artículo. Además, una vez que el administrador está avisado, los usuarios del blog tienen que ser notificados de […]

Patrón de diseño Template Method

En este ejercicio vamos a solucionar la siguiente petición: Una agencia de viajes ofrece varios paquetes de tres días para sus clientes. Cada paquete debe seguir los mismos pasos para la realización del viaje, pero con distinta funcionalidad dependiendo del paquete ofertado. Creamos la clase local LCL_VIAJE que implementa el método final REALIZAR_VIAJE. En la […]

Patrón de diseño Factory Method

En este artículo vamos a aprender a utilizar e implementar en patrón de diseño Factory Method. Implementamos el patrón de diseño Factory Method creando la interfaz local LIF_EXPEDIENTE que declara el método TIPO_EXPEDIENTE. Creamos dos clases locales LCL_EXPEDIENTE_OBRA y LCL_EXPEDIENTE_SUMINISTRO que implementan la interfaz. Para cumplir con los requerimientos del patrón Factory Method creamos la […]

Patrón de diseño Singleton – ABAP OO

Introducción El patrón de diseño Singleton (instancia única) está diseñado para restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto. Su intención consiste en garantizar que una clase sólo tenga una instancia y proporcionar un punto de acceso global a ella. El patrón Singleton se implementa creando en nuestra […]

Patrón de diseño Model-View-Controller

Vamos a crear un programa ejecutable implementamos el código fuente del patrón de diseño MVC creando las clases locales LCL_MODELO, LCL_VISTA y LCL_CONTROLADOR. La clase modelo accede a la tabla de maestros de proveedores (LFA1) para obtener los datos. Creamos un SELECT-OPTIONS para filtrar los datos por el campo LIFNR. En la clase que representa […]