One of the most commonly used patterns in software development is Caching. It's a simple, yet extremely effective concept. The idea is reuse of results. When performing a heavy operation, we will save the result in said cache. The next time that we need that result, we will use the result saved in cache, instead of performing the heavy operation again.