There's more...

Even though the implementation of the object pool simplifies working with preallocated objects, it has a number of limitations.

Firstly, all objects are created at the very beginning. As a result, calling the get method of our pool does not trigger an object constructor, and calling the free method does not call a destructor. Developers need to use various workarounds for the initialization and deinitialization of objects.

One possible workaround is to define special methods of the target object, such as initialize and deinitialize, which will be invoked respectively by the get and free methods of the ObjectPool class. This approach, however, couples the implementation of the classes to the ObjectPool implementation. Later in the chapter, we will look at more advanced techniques to overcome this limitation.

Our implementation of the pool does not detect whether the free method was called more than once for an object. It is a mistake, but it is common and leads to issues that are hard to debug.  While technically feasible, it adds extra complexity to the implementation that is not necessary for this example.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.149.243.32