Metodo call class solo se la condizione è soddisfatta

1

Ogni volta che faccio una richiesta http, devo assicurarmi che ci sia una connessione internet.

public class InternetCheck {
    public static boolean isOnline() {

   }
}

class Httphandler {


    public static String login(String uname,String pass){
        if(InternetCkeck.isOnline)//make the request
    }

}

Che cosa succede se aggiungo logout, cancella, uploadFile? Devo copiare nuovamente la riga if e così via per ogni http che faccio.

Stavo guardando il pattern proxy, ma non è la scelta giusta. Usando il pattern proxy ogni volta che aggiungo una nuova richiesta devo anche aggiungere al proxy. (Forse è accettabile?)

(Forse ho sbagliato il pattern proxy è per questo che sono andato a spiegare come lo sottolineo: Crea un'interfaccia con alcuni metodi: per esempio login. Quindi crea due classi un proxy uno e la cosa reale. Poi nel proxy faccio il login al metodo dove metto if e se è vero chiamo il metodo dalla cosa reale. Ma ancora una volta ogni volta che aggiungo una nuova chiamata http, devo ora aggiungerla in due classi. Come è meglio che copiare semplicemente incollando l'istruzione if?)

Come farlo in un modo carino senza la copia incolla cosa? (Sto pensando a secco)

    
posta Fox Alex 22.12.2016 - 22:27
fonte

2 risposte

1

Crea un metodo privato che fa solo una richiesta e controlla la connessione una volta lì. Tutti gli altri metodi lo chiamano con parametri che definiscono il tipo di richiesta da rendere.

    
risposta data 22.12.2016 - 22:29
fonte
1

Solo una nota: è molto, molto, molto difficile determinare con precisione se sei online oppure no. L'unico metodo che funziona davvero è quello di inviare una richiesta e interpretare qualsiasi messaggio di errore o di successo che si ottiene. Questo è quello che farei al livello in cui si desidera eseguire un'attività che richiede una richiesta.

A un livello più alto, nell'interfaccia utente, potresti dire all'utente se non hanno una connessione Internet (ma assicurati al 100% che tu possa rilevare quando la connettività torna) e possibilmente cosa potrebbero fare per risolvere il problema.

    
risposta data 23.12.2016 - 00:26
fonte

Leggi altre domande sui tag