Use Case : Lets say you have a requirement to copy modified field values from latest opportunity to Account , then how can you do field mapping effectively ?
Assumptions: We are not using any flows here.
Step - 1 Get all Account Ids from Opportunity Trigger/trigger helper
Step -2 Query Account and Its related opportunity records, assume you want to define latest opportunity by LastStageChangeDate, you can use createdDate too. This will give account details and latest opportunity without the new values that has been modified. so this is basically old opportunity.
Step - 3 Create a Map key as AccountId and value as Opportunity from trigger helper. This opportunity will be considered as new opportunity.
Step - 4 Iterate over Account records, under account list there will be another loop to iterate opportunity but that will be one record. when old opportunity Id and new opportunity id same that means latest opportunity is modified. Will leave up to you to find latest records. Now comes field mapping
Step - 5 Field Mapping
}
If you have few fields, then it is ok, if you need to map 100 fields then 100 ifs need to written, this is code redundancy, What if you need to get values from other object say Case then ?
So Instead of writing multiple Ifs , we can have one generic utility method that will work across object and field.
Here is generic method