Example of the design pattern An object pool in the Python programming language.
""" Offer a significant performance boost; it is most effective in situations where the cost of initializing a class instance is high, the rate of instantiation of a class is high, and the number of instantiations in use at any one time is low. """ class ReusablePool: """ Manage Reusable objects for use by Client objects. """ def __init__(self, size): self._reusables = [Reusable() for _ in range(size)] def acquire(self): return self._reusables.pop() def release(self, reusable): self._reusables.append(reusable) class Reusable: """ Collaborate with other objects for a limited amount of time, then they are no longer needed for that collaboration. """ pass def main(): reusable_pool = ReusablePool(10) reusable = reusable_pool.acquire() reusable_pool.release(reusable) if __name__ == "__main__": main()