Oggetto applicazione client-server con oggetti figlio

0

Effettivamente realizzerò un'applicazione Client Server, al Login Ricevo l'Oggetto Utente dal Server. Un utente ha un elenco di attività, ma non voglio caricarle al login. Quindi quale sarebbe uno stile valido per recitare i compiti di un utente. Se il mio utente ha una funzione "GetTasks ()" che accederà al server e restituirà le attività, che sarebbe un metodo strongmente orientato agli oggetti. O dovrei usare un servizio, che ha una funzione che accetta l'utente come parametro e restituisce l'attività.

    
posta Ced 10.03.2015 - 14:57
fonte

3 risposte

1

Should my user have an "GetTasks()" function which will access the server and will return the Tasks, which would be an strongly object orientated method.

Non sono sicuro che sia qualcosa di strongmente orientato agli oggetti.

Or should I Use an Service, which has a function that takes the user as parameter and returns the task.

Naturalmente sarebbe meglio usare il Servizio per questo. Segui SoC qui.

    
risposta data 11.03.2015 - 13:04
fonte
0

Che ne dici di disaccoppiare il modello utente dal modello di attività. Invece crea un oggetto TaskManager che potrebbe ottenere le attività per l'utente. Qualcosa come

TaskManager.getUserTasks(user); //which would return a list of Task objects

il vantaggio di mantenere questi due è che puoi continuare ad aggiungere funzionalità senza dover modificare il modello utente.

    
risposta data 10.04.2015 - 19:08
fonte
0

Non è abbastanza chiaro, cosa vuoi.

at the Login I recive the User Object from the Server

An user has a List of tasks, but I don't want to load them at the Login

So what would be an good style to recive the Tasks of an user

Se ho capito bene, l'elenco delle attività potrebbe essere lungo, quindi receving l'elenco delle attività sarebbe qualcosa che ha un impatto negativo sul tempo necessario per accedere; quindi vuoi disaccoppiarlo?

Quindi la prima domanda è, perché stai recuperando un intero oggetto utente? Un modello snellito farebbe.

Should my user have an "GetTasks()" function which will access the server and will return the Tasks, which would be an strongly object orientated method. Or should I Use an Service, which has a function that takes the user as parameter and returns the task.

Senza codice e la tua descrizione scadente è difficile indovinare, cosa stai facendo affatto.

Devi distinguere tra

  • Frontend

    Se hai un "modello" (ad esempio un modello Backbone ), che rappresenta un utente, allora un "metodo" getTasks() ha perfettamente senso

  • Backend

    Sul lato server, è necessario un Service per recuperare le attività. Suggerisco di creare un servizio REST in cui si avrebbe un URI come api/users/{id}/tasks che restituirebbe un elenco di attività per un utente con un dato id (che è indicato come "percorso" - variabile {id} ):

    {
      "tasks": [{
        "name": "task1",
        "description": "Doingstuff",
        "links": [{
          "rel": "self",
          "href": "http: //localhost: 8080/api/users/1/tasks/1"
        }]
      }],
      "links": [{
        "rel": "self",
        "href": "http: //localhost: 8080/api/users/1/tasks"
      }, {
        "rel": "user",
        "href": "http: //localhost: 8080/api/users/1"
      }]
    }
    
risposta data 09.08.2015 - 22:30
fonte