I rendimenti con dichiarazioni grandi all'inizio di un metodo sono di buon livello? [duplicare]

0

Ci sono un paio di esempi da un semplice gioco basato su due giocatori che mettono X e O su array 2d

Il primo metodo dovrebbe restituire true se l'elemento archiviato [y] [x] è ok;

public boolean yxInField(int y, int x, char[][] field) {
    return field != null
            && y >= 0
            && x >= 0
            && y < field.length
            && field[y] != null
            && x < field[y].length;
}

Second dovrebbe restituire true se almeno una delle chiamate di check win condition per una direzione specifica restituita true

public boolean checkWin(int y, int x, char[][] field) {
    return
            //E-W
            checkDirection(y, x, 0, -1, field)
            //S-N
            || checkDirection(y, x, -1, 0, field)
            //SE-NW
            || checkDirection(y, x, -1, -1, field)
            //SW-NE
            || checkDirection(y, x, -1, 1, field);
}

Ma non sono sicuro che questo stile sia ok. Se no, quale sarebbe il modo migliore per fare quei metodi?

    
posta Dmitry D 27.04.2017 - 16:37
fonte

1 risposta

1

Sì, è perfettamente OK. Distribuire la condizione complessa su più linee e interlacciare le parti con commenti utili è ancora meglio.

L'unica cosa da considerare (se la prestazione è una preoccupazione) è l'ordine delle sotto-condizioni. Nel caso di più OR concatenati, si desidera che quelli con maggiori probabilità di successo siano i primi, quindi la maggior parte delle volte la valutazione può essere interrotta. Con gli AND si desidera che quelli con maggiori probabilità di non andare per primi per lo stesso motivo.

    
risposta data 27.04.2017 - 17:06
fonte

Leggi altre domande sui tag