Questa funzione fa una cosa sola?

0

Il seguente metodo è considerato come una cosa sola?

Mi sto chiedendo perché ci vuole un argomento facoltativo.

public function findErrors($name = null)
{
    if ($name) {
        return isset($this->errors[$name]) ? $this->errors[$name] : [];
    }

    return $this->errors ?: [];
}

In caso contrario, sarebbe meglio / importa averlo separato come segue:

public function findErrors()
{
    return $this->errors ?: [];
}

public function findErrorsOf($name)
{
    return isset($this->errors[$name]) ? $this->errors[$name] : [];
}
    
posta Kid Diamond 28.08.2014 - 19:34
fonte

1 risposta

3

No, non proprio. Ha chiaramente due percorsi indipendenti. Sarebbe meglio separarli in due funzioni (possibilmente sovraccariche) per disaccoppiarle meglio.

Ancora meglio, vorrei cercare di eliminare il comportamento specifico del nome a meno che non sia veramente quello comune. Cosa succede se vuoi trovare errori da giovedì? Che dire degli errori che contengono la parola "Banana"? Non dovresti tornare a modificare questo codice ogni volta che hai un nuovo criterio di ricerca e non dovresti avere un modo per trovare i nomi e un altro modo per trovare le banane.

    
risposta data 28.08.2014 - 19:57
fonte

Leggi altre domande sui tag