Ho un servizio che è un client API.
L'obiettivo è creare un'istanza di un cliente concreto che gli dici (diversi fornitori), implementare i suoi metodi ( createRequest
e doRequest
) e inoltrare la chiamata al client concreto, quindi è un proxy
.
Ma ha anche bisogno di mantenere la risposta dei client a un database in modo trasparente (così, lo sviluppatore non deve preoccuparsi di questo quando usa il servizio).
In questo modo, sto mixando 2 pattern (proxy e factory per i clienti concreti) e aggiungendo anche la responsabilità di persistenza al servizio.
Oggi il mio capo mi ha detto che se non seguo rigorosamente il modello, allora sto facendo qualcos'altro, ma non posso dire che sia X pattern.
È vero? Devo seguire rigorosamente i modelli?
Forse potrei separare l'istanziazione di clienti concreti in una fabbrica che segue un modello di fabbrica, ma poi aggiungerei più file per qualcosa che dovrei mantenere semplice e stupido, quindi temo che fare una fabbrica sarebbe finita -Engineering.
public function setClient(string $clientName) {
if (!isset($this->clients[$clientName])) {
throw new InvalidClientException('some error');
}
$this->clientInstance = new $this->clients[$clientName]();
}