Secondo il seguente articolo Costruttori nominati L'autore suggerisce di usare static factory pattern
per costruire oggetti è molto meglio dell'istantaneo con la parola chiave new
. All'inizio l'idea è allettante (secondo alcuni dettagli nell'articolo) sì, i nomi dei metodi sono più ovvi e dà la sensazione che la costruzione della classe non dipende dal suo coordina ma la classe ha comportamenti diversi a seconda dei diversi problemi di costruzione livello.
<?php
$customer = new Customer($name);
// We can't "new a customer" or "instantiate a customer" in real life.
// Better:
$customer = Customer::fromRegistration($name);
$customer = Customer::fromImport($name);
Ma il problema che vedo qui secondo questo idioma stiamo usando la classe methods
come functions
! E secondo l'esempio precedente crea problemi di accoppiamento, dobbiamo avvolgere questo static factories
con una fabbrica di iniettori per disaccoppiare dal resto dell'applicazione?
Potresti per favore chiarirmi per capirlo. Ho iniziato a vedere questo idioma tutt'intorno nella comunità PHP e persino in alcuni esempi Java.