Sono curioso di sapere se questo design è considerato una buona o cattiva pratica.
Ho un dispatcher e una classe di servizio.
Dispatcher ho il seguente:
public void doBeforeUpdate(Map<Id,sObject> oldMap, Map<Id,sObject> newMap, List<sObject> triggerOld, List<sObject> triggerNew) {
Boolean myBool = service.myCheck(triggerOld, triggerNew);
if(!myBool){
Boolean newBool = false;
for(sObject oldInfo: triggerOld){
for(sObject newInfo: triggerNew){
if(newInfo.price < oldInfo.price){
newBool = true;
}
}
}
if(newBool){
service.priceChanged(triggerNew);
}
}
}
Nel mio servizio ho il seguente:
public static Boolean myCheck(List<sObject> triggerOld, List<sObject> triggerNew){
Boolean myBool = false;
for(sObject oldInfo: triggerOld){
for(sObject newInfo: triggerNew){
if(newInfo.Id == oldInfo.Id && newInfo.Name != oldInfo.Name){
myBool = true;
break;
}
}
if(myBool) break;
}
return myBool;
}
La mia domanda è, è buona o cattiva pratica che myBool nel dispatcher sia impostato su un metodo di ritorno dal servizio per determinare se il codice e il metodo nell'istruzione if vengono eseguiti nel dispatcher. Sto lavorando in Apex. Il mio pensiero è, farlo in questo modo mi risparmia tempo di elaborazione se la prima condizione non riesce. Non dovrei preoccuparmi di questo? È bene o male impostare un booleano basato su un metodo di ritorno? È appena finito di uccidere e ci sto pensando? Qualsiasi suggerimento sarebbe davvero apprezzato. Grazie.