Ir al contenido principal

Cómo aplicar el patrón DAO en Force.com (Parte 1)

En ocasiones es necesario añadir comportamiento tanto a objetos estándar (Standard Objects) como a objetos personalizados (Custom Objects) y a la vez desacoplar los objetos nativos de Force.com para que el componente desarrollado pueda ser reutilizado.

El patrón de diseño que permite dejar la implementación nativa en una capa más baja y crear capas superiores de manera tal de potenciar las funcionalidades es el patrón de diseño DAO.
Este patrón de diseño utiliza tres clases:
  • Una clase para el acceso a los datos (Data Access Object)
  • Una clase intermedia que representa una instancia del dato (Transfer Object)
  • Una clase que procesa o utiliza los datos (Business Object)


¿Cómo funciona esta implementación?

La clase DAO, por la cual recibe el nombre este patrón, es la que se encarga de la recuperación, actualización e incorporación de datos a la base de datos.

Force.com se basa en otro patrón de diseño como lo es MVC (Model-View-Controller) el acceso directo a la base de datos es a través de los modelos que son en definitiva los Standard Objects y Custom Objects, junto con la clase Database.

La clase DAO utilizará estos recursos pero agregará comportamientos tales como consultas SOQL personalizadas para casos puntuales, validaciones o formateos de datos pre o post operaciones sobre los mismos o cualquier otro comportamiento que esté directamente relacionado con el acceso a los datos.

Para realizar las operaciones ABM en Force.com es necesario utilizar los objetos nativos lo cual mantiene un alto acoplamiento con la plataforma Force.com, en este punto se implementan las clases Transfer Object (TO), que no es más que una clase con propiedades idéntica o similares a las de los objetos nativos. Por ejemplo: si se tiene el objeto estándar Account se creará una clase AccountTO donde las propiedades serán similares a los campos del objeto Account.

Este objeto TO lo que permite es la manipulación de los datos sin tener restricciones propias de la plataforma, como por ejemplo relacionar dos registros que aún no han sido guardados/insertados en la base de datos ya que para relacionar dos registros es necesario el ID otorgado por la plataforma al momento de su inserción. También es posible agregar comportamiento a este TO de manera tal de realizar validaciones de datos o bien proveer funcionalidades como cálculos entre campos, conversión de tipos de datos, etc.

Entonces, resumiendo. Hasta ahora tenemos los DAOs y los TOs con los cuales hemos creado una capa superior sobre la plataforma Force.com.
El último objeto a crear es el Business Object (BO) cuya labor es simplemente implementar la lógica de negocio, es decir el qué hacer con los datos y el cómo hacerlo.

Un BO podría ser un controlador para manipular los datos a través de una vista, o bien un proceso como puede ser un buscador.

Comentarios

Entradas populares de este blog

Configurar Wi-Fi en Slackware

Ahora es común tener una notebook pero no lo es tanto el tener un linux en ella y mucho menos tener un Slackware en la notebook. Sin embargo, es posible tenerlo por lo que vale la pena dedicarle unas líneas a la configuración del Wi-Fi. Primero que nada hay que saber cuál es la placa de red inalambrica que posee la notebook, es decir su marca y modelo. Si ya está Linux instalado en la notebook solo se debe ejecutar el siguiente comando para saber cuál es la marca y modelo de la placa de red inalambrica: # lspci Este comando dará como resultado algo similar a esto: 09:00.0 Ethernet controller: Marvell Technology Group Ltd. Unknown device 4354 (rev 12) 0b:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02) En estas líneas se puede observar que la segunda hace referencia a la placa de red inalambrica que posee la notebook, en este caso una Intel PRO/Wireless 3945ABG . Con esta información lo que se debe hacer es buscar cuál es el módulo que se deb...

¿Qué hace un Licenciado en Sistemas?

Muchas veces, conocidos que no son informáticos, me han preguntado ¿qué hace un Licenciado en Sistemas? ...... " Buena pregunta " - sonaba en mi cabeza. Yo sé lo que yo quiero hacer en mi vida profesional pero realmente ¿qué perfil tiene un Licenciado en Sistemas? Es sencillo saber qué hace un médico, un veterinario, un ingeniero civil, etc. Por ejemplo si su perro se enferma ¿a quién llaman? si quieren construir un puente ... ¿a quién llaman? si ustedes están enfermos ¿a quién llaman? Ahora, si necesitan un sistema para su empresa ¿a quien llaman? ... ¿a un Lic. en Sistemas? ¿a un Ing. en Sistemas? ¿a un programador de aplicaciones? ¿a un analista en sistemas? ¿a un consultor informático? o ¿al amigo que se la pasa en internet y que sabe "todo" sobre computadoras e hizo un montón de cursos (word, excel, windows, redes, etc.)? Esta situación se presenta a menudo; es tan confuso que muchas veces hasta los mismos profesionales informáticos o entendidos en la materia ...

Paquetes para Slackware

Para aquellos que recién comienzan a utilizar Slackware , esta grandiosa distribución GNU/Linux una de las más antiguas, estables y seguras que existen; de seguro se habrán encontrado con la tarea de instalar algún programa extra y que no es distribuido junto con Slackware. Uno de los mejores sitios para encontrar software empaquetado para esta distro es Linuxpackages.net ; en este sitio podrán realizar búsquedas en versiones específicas de Slackware inclusive en la última versión liberada, la 12.1. Los paquete que aquí se encuentran ya han sido precompilados por lo que no deberán realizar los típicos pasos "./configure","make" y "make install"; sino que solamente podrán utilizar las herramientas installpkg, pkgtool o kpackage para instalar los paquetes descargados desde este sitio. Claro que no siempre encontrarán el soft que buscan en este excelente sitio, en esos casos siempre es bueno recurrir a los sitios del autor del soft en cuestión para obtener l...