Esempio: ho un metodo che formatta l'output in base a un parametro da un oggetto. La domanda è: dovrei passare l'oggetto che contiene il parametro al metodo, o solo il parametro richiesto?
Sto ancora cercando di comprendere il codice pulito in modo da potermi sbagliare, il mio approccio è che il secondo approccio è più pulito perché non richiede il passaggio dell'intero oggetto ed è facile da testare.
Tuttavia, rende il metodo di chiamata brutto ora dal momento che devo controllare il param ogni volta che chiamo il metodo. E viene usato molto spesso.
Al contrario, il primo approccio mentre non è così facile da testare, perché devo prendere in giro la requestObject, è molto più facile da usare.
Quindi quale metodo dovrei usare? O c'è un approccio ancora migliore?
// The output method with object as input
public function outputResponse($message, $requestObject) {
if (isset($resquestObject->param['response_type']) && $requestObject->param['response_type'] == 'json') return json_ecode($message);
return xmlOutput($message);
}
// So you call it like
$this->outputResponse($message, $requestObject);
L'altro approccio ...
// The output method with just the param as input
public function outputResponse($message, $responseType) {
if (responseType == 'json') return json_ecode($message);
return xmlOutput($message);
}
// So you call it like
$responseType = (isset($resquestObject->param['response_type']) && $requestObject->param['response_type'] == 'json') ? 'json' : '';
$this->outputResponse($message, $responseType);