Utilizza i parametri locali Se Globale è vuoto?

0

Caso semplificato con classe immutabile

final class Secret implements IFoo
{
    private $header;

    public function __construct(array $header = [])
    {
        $this->header = $header;
    }

    public function secret(array $header = []) : string
    {
        return empty($header) ? $this->header : $header;
    }
}

Scenario 1

$secret = new Secret(['a' => 1]);
$secret->secret(); // returns ['a' => 1]

Scenario 2

// Need to instantiate, but don't know the argument
$secret = new Secret();

// Don't still know the argument
// .......
// I know the argument now
$secret->secret(['a' => 1]); // returns ['a' => 1]

Che cosa è OOP?

Lo scenario 2 è utile se hai bisogno di istanziare la classe, ma non conosci l'argomento.

Questo OOP è valido: usa il parametro locale se il parametro globale è vuoto?

Perché, qual è il tuo problema?

Nel contenitore IoC, lego l'interfaccia IFoo alla classe Secret. Ma, nel contenitore IoC, non conosco l'argomento!

    
posta schellingerht 12.10.2016 - 18:48
fonte

0 risposte

Leggi altre domande sui tag