Compártelo con tus amigos!

Al escribir clases de Apex debemos considerar ciertas implicancias. A continuación veremos algunas de ellas.

Una clase es una estructura lógica que envuelve funcionalidad en Apex. Además, contiene variables y métodos que se pueden utilizar para especificar el estado y comportamiento de los objetos.

Adicionalmente, las clases e interfaces de Salesforce siguen los principios de programación orientada a objetos y sintaxis del lenguaje de programación Java.

Clases e Interfaces de Apex

A continuación veremos algunas diferencias entre una clase de Apex y una Interfaz.

Clases de ApexInterfaces
SintaxisEl modificador de acceso, palabras clave y el nombre de la clase son obligatorios en la definición. Se utiliza la palabra clave Interface para crear una definición de interfaz. Se utiliza la palabra clave implements para implementar una interfaz en una clase.
FuncionalidadUtiliza constructores, modificadores de acceso y modificadores de definición. Además puede crear métodos estáticos y no estáticos. Implementa métodos basados en aplicaciones específicas. La clase implementada proporciona la definición del método.
Casos de usoLas clases de Apex se pueden utilizar para servicios web, envío de emails, validaciones complejas, procesos de negocios, lógica personalizada y operaciones batch. Se implementa una lógica diferente para diferentes tipos de funcionalidad. Permite que los desarrolladores sean abstractos al utilizar objetos.

¿Cuándo Escribir Clases de Apex?

Los siguientes casos de uso requieren de una clase de Apex:

  • Modelos y Acciones: Cuando se crea un modelo de datos o se realizan acciones personalizadas en general.
  • Clase de controlador: Para construir un controlador del lado del servidor para una Visualforce Page o un Lightning Web Component.
  • Test Custom Mode: Para diseñar, construir y realizar pruebas unitarias.
  • Test Data Factory: Al crear un componente reutilizable para la generación de datos de prueba.
  • Trigger Handler: Es una lógica independiente de un negocio invocada por un trigger de Apex.
  • Implementación de Interfaces: Implementa herencias utilizando una interfaz.
  • Extensión de Clases: Implementa herencia al extender una clase virtual.

Definición de una Clase de Apex

Para definir una clase de Apex, debemos tener en cuenta las siguientes especificaciones:

  • Nombre de la Clase: Una clase se define utilizando la palabra clave requerida class seguida del nombre de la clase.
  • Modificador de acceso: Se requiere que una clase tenga un modificador de acceso (por ejemplo, public, global).
  • Extends/Implements: Una clase puede extender otra, o implementar más interfaces.
  • Modificador de definición: No se requiere el uso de modificadores de definiciones virtuales o abstractos en una definición de clase.
  • Modos de Compartir: El modo de uso compartido de una clase se puede definir para determinar como se debe manejar las restricciones de acceso a los datos.

Constructor de una Clase:

  • Un constructor es un código que se ejecuta automáticamente cuando se crea un objeto de una clase.
  • Se utiliza para definir argumentos al instanciar un nuevo objeto.
  • Pueden ser varios constructores con diferentes parámetros.
  • Se puede crear un constructor sin argumentos.
  • No tiene un tipo de retorno explícito incluyendo el tipo void.

Sharing Modes:

Apex se ejecuta en System Context de forma predeterminada. Es decir, en modo del sistema. Por lo tanto, permite tener acceso a todos los datos de la organización. No hay restricciones para los permisos de objetos, seguridad de acceso a campos ni a los sharing rules del usuario actual.

Los Sharing Modes se utilizan para definir las restricciones de acceso de datos de Apex.

  • With Sharing: Asegura que la clase de Apex hará cumplir las reglas de uso compartido del usuario actual.
  • Without Sharing: Garantiza que la clase de Apex no forzará las reglas de uso compartido del usuario actual.
  • Inherited Sharing: Hereda la configuración de uso compartido de la clase que llama o depende de cómo se use la clase de Apex.

Algunas Cosas para Recordar:

  • Las clases de Apex se pueden utilizar para sevicios web, envío de emails, validaciones complejas, procesos de negocio, lógica personalizada y operaciones batch.
  • El código anónimo, de la consola anónima, siempre se ejecuta con los permisos completos del usuario actual, independientemente del modo de uso compartido que se define en una clase.
  • Si no se declara ningún modo de uso compartido, no se aplicarán las reglas de uso compartido. Es decir, el modificador de acceso por default será without sharing.
  • Si no se le asigna un valor a una variable, su valor predeterminado será nulo.

Más Información para Escribir Clases de Apex

Para saber más sobre Salesforce, puedes visitar nuestro último post sobre Decorator Wire en Salesforce

(Visited 1.426 times, 1 visits today)

Compártelo con tus amigos!

Close