Object Pooling is nothing new. It is a concept that implies that
we can store a pool of objects in memory to be reused later and, hence, reduce
the load of object creation to a great extent. An Object Pool, also known as a
Resource Pool, is a list/set of ready to be used reusable objects that reduce
the overhead of creating each object from the scratch whenever a request for an
object creation comes in. This is somewhat similar to the functioning of a
Connection Pool, but with some distinct differences. This article throws light
on this concept (Object Pooling) and discusses how we can implement a simple
generic Object Pool in .NET.