Design Pattern per analizzare array di oggetti

4

Che cosa è considerata una buona pratica per analizzare una matrice di oggetti restituiti da un'API?

Sto creando un servizio web RESTfull e un client che ha lo scopo di funzionare con questo servizio.

Uno dei miei servizi REST restituisce un array JSON nel seguente formato:

{
  "objectsArray": [
    {
      "PropertyA": 10,
      "PropertyB": "A String",
      "PropertyC": true,
    },
    {
      "PropertyA": 20,
      "PropertyB": "Another String",
      "PropertyC": false,
    }
  ]
}

Nel mio client vorrei analizzare questo array JSON e mapparlo al modello, ma non sono sicuro di dove posizionare la logica di analisi per mantenere l'accoppiamento lento.

Cosa ho già:

  1. Classe del modello. Dall'esempio sopra vorrei ottenere due oggetti di questa classe. Se avessi un singolo oggetto restituito dall'API, avrei aggiunto un costruttore che poteva utilizzare JSON, ma aggiungere un metodo per analizzare una matrice di oggetti non è corretto.
  2. Classe client REST. Questa classe è pensata per effettuare chiamate REST e fornire il risultato, mi piacerebbe renderlo riutilizzabile, quindi non lo faccio voglio che sappia qualcosa sul mio modello.
  3. Visualizza controller. Vorrei fare le chiamate di servizio da qui, quindi voglio analizzare i dati ricevuti e visualizzarli sulla vista. Aggiunta la logica di analisi qui sembra essere la soluzione più logica, ma non mi sembra giusto.

Quali sono le buone pratiche o i modelli di progettazione per tale compito? Devo creare una classe extra per questo?

Grazie in anticipo.

    
posta Vlad Spreys 26.01.2015 - 09:32
fonte

1 risposta

1

Inserirò il codice di analisi in una classe factory che sa come creare sia una singola istanza della classe Model da JSON sia come creare una sequenza di istanze di classe Model da JSON.
Questo si basa sul presupposto che tu sappia già quali oggetti sono rappresentati dal JSON. Se non sai esattamente quali oggetti rappresenta il JSON, la classe factory è il meccanismo più semplice che può essere esteso per prendere JSON quasi arbitrario e creare gli oggetti corretti per questo.

La classe factory verrebbe utilizzata dal tuo controller View, dove riceverai anche il JSON.

    
risposta data 26.01.2015 - 10:40
fonte

Leggi altre domande sui tag