Sto scrivendo (in PHP) un client / proxy per un servizio web SOAP. I tipi di ritorno sono coerentemente avvolti in oggetti risposta che contengono i valori di ritorno. In molti casi ciò ha molto senso, ad esempio quando vengono restituiti più valori:
GetDetailsResponse Object
(
Results Object
(
[TotalResults] => 10
[NextPage] => 2
)
[Details] => Array
(
[0] => Detail Object
(
[Id] => 1
)
)
)
Ma alcuni dei metodi restituiscono un singolo valore scalare o un singolo oggetto o array avvolto in un oggetto risposta:
GetThingummyIdResponse Object
(
[ThingummyId] => 42
)
In alcuni casi questi oggetti potrebbero essere piuttosto profondi, quindi per ottenere le proprietà all'interno è necessario eseguire il drill down di più livelli:
$response->Details->Detail[0]->Contents->Item[5]->Id
E se li scarto prima di passarli indietro, posso rimuovere uno strato dal codice dei consumatori.
So che probabilmente sono un po 'un astronauta di architettura qui, ma quest'ultimo stile mi infastidisce, quindi ho lavorato con il mio codice per fare in modo che i miei metodi proxy restituissero il valore scalare al codice client dove non c'è assolutamente bisogno di un oggetto wrapper.
La mia domanda è, sto effettivamente rendendo le cose più difficili per i consumatori del mio codice? Sarebbe meglio se lasciassero i valori di ritorno avvolti negli oggetti di risposta in modo che tutto fosse coerente o rimuovesse gli strati non necessari di indiretta / astrazione?