PHP: cómo implementar el patrón de diseño software Prototype o Prototipo

2022-02-04 - Categorías: General / PHP / Principios y patrones

Siguiendo con el repaso a los patrones de diseño software, llegamos al llamado Prototype, o Prototipo en castellano. Este patrón consiste en crear un método en los objetos para que se puedan clonar fácilmente.

Es decir, una vez tenemos un objeto, podemos crear otro copia de este primero, pero puede ser muy costoso hacerlo desde afuera del objeto que queremos clonar. Lo mejor es hacerlo internamente dentro del propio objecto. Al grano..

Líneas generales sobre el funcionamiento de Prototype

Es sencillo, simplemente se construye implementado el siguiente esquema:

Siguiendo la línea de usar PHP en los ejemplos de esta serie, podríamos hacer algo como lo siguiente en una clase externa:

<?php

$object1 = new ObjectType1();

$clonedObject1 = $object1->clone();

La implementación de la interfaz que definiría este caso de uso podría ser:

<?php

interface IObjectPrototype
{
    public function clone(): object;
}

..y las implementaciones de los objetos:

<?php

class ObjectType1
{
    private $var1;
    private $var2;

    /**
     * Some more code..
     */
    public function clone(): ObjectType1
    {
        $new = new ObjectType1();
        $new->var1 = $this->var1;
        $new->var2 = $this->var2;

        return $new;
    }
}
<?php

class ObjectType2
{
    private $var1;
    private $var2;

    /**
     * Some more code..
     */
    public function clone(): ObjectType2
    {
        $new = new ObjectType2();
        $new->var1 = $this->var1;
        $new->var2 = $this->var2;

        return $new;
    }
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

 

© 2022 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.