How to determine where to make the change
The decision on where to make a change is based on many factors. These are to accomplish two goals: impact on future upgrades and reducing the number of changes to accomplish a task. These help keep the code maintainable, and when the code is handled by fewer changes, it is easier to read too. There may be other considerations, such as performance, that also need to be taken into account.
Both are accomplished by making the right modification in the correct place, and this should always be as "low" as possible. When making a change, we would rarely change standard code. Instead, we place a hook so that it calls our code.
If we find ourselves rewriting a standard method, it indicates that we should really ...