
Apex estático e instanciado en Salesforce
Como desarrolladores de esta plataforma, necesitamos conocer sobre Apex estático e instanciado en Salesforce, así podremos programar a un nivel profesional con buenos principios del ámbito.
Las clases en Apex no pueden ser estáticas, sin embargo, podemos utilizar métodos estáticos, variables y códigos de inicialización. Por otro lado, podemos tener métodos instanciados y códigos de inicialización sin modificador ni variables locales.
Características de Apex Estático
Los métodos estáticos, variables y códigos de inicialización pueden:
- Estar asociados con una clase.
- Aparecen sólo en clases externas.
- Se ejecutan sólo cuando una clase es ejecutada.
- No pueden trasmitirse como parte del view state de una Visualforce page.
Características de Apex Instanciado
Los métodos instanciados, variables miembro y códigos de inicialización pueden:
- Estar asociados con un objeto particular.
- No tienen un modificador de definición.
- Se crean con cada objeto instanciado cuando la clase se ejecuta.
Usando Métodos y Variables Estáticas
- Solo en clases externas. Es decir, clases que pueden incluir clases internas.
- No se requiere una instancia de la clase para ejecutarse.
- Todas las variables estáticas son inicializadas antes de que un objeto de la clase sea creado.
- Un método estático es usado como un método de utilidad (Utility). Por ejemplo, cuando necesitemos acceder a datos que no necesitan la declaración de un objeto.
- Una variable estática es estática solo dentro del alcance de la transacción Apex. Así mismo, pueden ser usadas como banderas en Apex Triggers (Código de Ejemplo).
- No podemos acceder a una variable o método estático a través de la instancia de una clase.
- Una clase interna se comporta como una clase estática y no requiere la palabra clave static. Además, estas clases no necesitan ser declaradas.
- En otras palabras, se usan métodos y variables estáticas cuando no se necesita la abstracción de un objeto pero si de código directo.
- Pregúntate “¿Tiene sentido llamar a este método, incluso si ningún objeto ha sido construido todavía?” Si es así, el método debería ser estático.
public class P { public static boolean firstRun = true; }
trigger T1 on Account (before delete, after delete, after undelete) { if(Trigger.isBefore){ if(Trigger.isDelete){ if(p.firstRun){ Trigger.old[0].addError('Before Account Delete Error'); p.firstRun=false; } } } }
Usando Instancia de métodos y variables
- Son usados por la instancia de una clase, es decir, por un objeto.
- La instancia de una variable miembro es declarada dentro de una clase.
- Usualmente se usa la variable de instancia (member) para afectar el comportamiento del método.
- En otras palabras, se usa cuando depende de un objeto y puede afectar su comportamiento. Por ejemplo, un Point, necesita instanciar x y y antes de ser creada.
public class Plotter { // This inner class manages the points class Point { Double x; Double y; Point(Double x, Double y) { this.x = x; this.y = y; } Double getXCoordinate() { return x; } Double getYCoordinate() { return y; } } List<Point> points = new List<Point>(); public void plot(Double x, Double y) { points.add(new Point(x, y)); } // The following method takes the list of points and does something with them public void render() { } }
Referencias sobre Apex Estático e Instanciado
- Static and Instance Methods, Variables, and Initialization Code – Apex developer Guide
- When to use static methods – Stackoverflow
- Static and Instance in Apex Salesforce – Salesforce Learning Point
Para aprender más sobre Salesforce puedes ir a Contenidos Web en Visualforce Pages
My spouse and I stumbled over click here [Audrey]
from a different page and thought I
may as well check things out.
I like what I see so now i am following you. Look forward to looking at
your web page repeatedly.
Amazon Relational Database Service (RDS)