Apex estático e instanciado en Salesforce

Comparte la información a tus amigos

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

Para aprender más sobre Salesforce puedes ir a Contenidos Web en Visualforce Pages

Comparte la información a tus amigos

Leave a Comment