Apex Trigger Design Patterns
- Best practice to have all your trigger logic inside one handler class and only have one trigger on each object.
- Below is code for one trigger of each object.
trigger MyCustomObjectTrigger on MyCustomObject__c (after delete, after insert, after undelete, after update, before delete, before insert, before update) {
MyCustomObjectTriggerHandler handler = new MyCustomObjectTriggerHandler();
/* Before Insert */
if(Trigger.isInsert && Trigger.isBefore){
handler.OnBeforeInsert(Trigger.new);
}
/* After Insert */
else if(Trigger.isInsert && Trigger.isAfter){
handler.OnAfterInsert(Trigger.new);
}
/* Before Update */
else if(Trigger.isUpdate && Trigger.isBefore){
handler.OnBeforeUpdate(Trigger.old, Trigger.new, Trigger.newMap);
}
/* After Update */
else if(Trigger.isUpdate && Trigger.isAfter){
handler.OnAfterUpdate(Trigger.old, Trigger.new, Trigger.newMap);
}
/* Before Delete */
else if(Trigger.isDelete && Trigger.isBefore){
handler.OnBeforeDelete(Trigger.old, Trigger.oldMap);
}
/* After Delete */
else if(Trigger.isDelete && Trigger.isAfter){
handler.OnAfterDelete(Trigger.old, Trigger.oldMap);
}
/* After Undelete */
else if(Trigger.isUnDelete){
handler.OnUndelete(Trigger.new);
}
}
Comments
Post a Comment