Like in real life, not all objects are easy to create, and some can take up excessive amounts of memory. The FlyWeight design pattern can help us minimize memory usage by sharing as much data as possible with similar objects.

This design pattern has limited use in most PHP applications, but it is still worth knowing it for the odd situation where it is incredibly useful.

Suppose we have a Shape interface with a draw method:

interface Shape 
  public function draw(); 

Let's create a Circle class that implements this interface. When implementing this, we build the ability to set the location of a circle with X and Y co-ordinates. We also create the ability to set the circle's radius and draw it (print out this information). Note how ...

Get Mastering PHP Design Patterns now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.