Un mio compagno di squadra ha scritto del codice nel modo seguente:
Class Foo implements Job {
// Framework uses type-hinting for dependency injection, only works on the handle() method
// not on other methods
public function handle(Dependency1 $dep1, Dependency2 $dep2) {
$this->setAlpha($dep1, $dep2);
$this->setBravo($dep1, $this->someOtherObject);
}
// This function is only called by the handle method
private function setAlpha($dep1, $dep2) {
// Do something
}
// This function is only called by the handle method
private function setBravo($dep1, Object $otherObject) {
// Do something
$this->something = $dep1->something();
}
}
Sto cercando di spiegargli perché è meglio assegnare le dipendenze alle proprietà della classe private or protected
e usarle nelle tue funzioni in modo da non inquinare i parametri del metodo con le dipendenze.
Il suo argomento è che è molto più leggibile in questo modo poiché saprai quali sono le dipendenze dei metodi.
La mia argomentazione è che se scrivi i tuoi metodi in questo modo, possono piuttosto essere resi statici che non sono qualcosa di buono. E che se ottieni metodi extra che richiedono queste dipendenze, hai bisogno di un modo diverso di recuperarli
Qualcuno sa se il codice sopra è un buon modo per farlo o dovrebbe essere riscritto alle proprietà della classe e perché?
Non riesco a trovare buone ragioni e vengo a questo StackExchange per ascoltare le tue opinioni