Este patrón de diseño de software es el de Adaptador, se puede usar para conectar con otros sistemas. Simplemente utiliza una interfaz para definir un contrato de uso que luego se reutiliza implementando clases que la implementan.
Por ejemplo, supongamos que queremos guardar cadenas de caracteres. Este guardar, es lo que queremos hacer, independientemente de si se hace en memoria, en un fichero, una base de datos Postgres/Mysql/etc.. entonces cada implementación del guardado, es un adaptador, porque adapta conectando el sistema informático con el destino del guardado de forma transparente.
Show me the code, código fuente en PHP
Por ejemplo si queremos almacenar información sobre algo:
<?php
class Something
{
public $string;
}
Entonces podemos definir un contrato de uso con una función de guardado:
<?php
interface IAdapter
{
public function save(Something $something);
}
Un adaptador podría ser para guardar ese algo en memoria RAM simplemente en un array:
<?php
class StoreInMemoryAdapter implements IAdapter
{
private $data = [];
public function save(Something $something)
{
$this->data[] = $something;
}
}
Otro adaptador podría implementar la misma función de guardado save(), pero esta vez almacenando ese algo en un fichero:
<?php
class StoreInFileAdapter implements IAdapter
{
public function save(Something $something)
{
file_put_contents('file.txt', $something->string.PHP_EOL, FILE_APPEND);
}
}
Recapitulando, con el patrón adaptador, ponemos una capa de software que son los adaptadores, para conectar la información teniendo una interfaz de comunicación común.