El patrón de agrupación de objetos en PHP

El patrón de agrupación de objetos gestiona instancias de clase: objetos. Se utiliza en situaciones en las que nos gustaría limitar la creación de instancias de clase innecesarias debido a operaciones intensivas en recursos. El grupo de objetos actúa de manera muy similar a un registro de objetos, desde el cual los clientes pueden recoger los objetos necesarios más adelante.

El siguiente ejemplo muestra una posible implementación del patrón de agrupación de objetos:

<?php
class ObjectPool
{
private $instances = [];
public function load($key)
{
return $this->instances[$key];
}
public function save($object, $key)
{
$this->instances[$key] = $object;
}
}
class User
{
public function hello($name)
{
return 'Hello ' . $name;
}
}
// Client use
$pool = new ObjectPool();
$user = new User();
$key = spl_object_hash($user);
$pool->save($user, $key);
// code…
$user = $pool->load($key);
echo $user->hello('John');

Usando nada más que una matriz y dos métodos, pudimos implementar un grupo de objetos simple. El método save() agrega el objeto a la matriz $instances, mientras que el método load() lo devuelve al cliente. El cliente, en este caso, se encarga de realizar un seguimiento de la clave bajo la cual se guarda el objeto. Los objetos en sí no se destruyen después de su uso.

Comparte