stampa in modalità vs stampa nella classe principale / driver

2

Sono abbastanza nuovo nella programmazione e sto attualmente creando un gioco del blackjack in Java.

Ho progredito abbastanza bene, sebbene potessi usare alcuni suggerimenti per quanto riguarda il modo migliore per implementare un metodo.

In vari punti durante una partita di blackjack è importante mostrare all'utente quali carte sono nella loro mano. Ho una classe PlayerHand e un metodo che restituisce una scheda all'indice i come stringa.

public String displayCard (int i)
{
    return hand.get(i).getCard();
}

'hand' è un ArrayList che rappresenta la mano e il metodo .getCard () sulla carta è il seguente ...

public String getCard ()
{
    return "The "+mCardValueName+" of "+mCardSuit;
}

Tutto questo sembra buono e utile per restituire la carta all'indice i in una mano di giocatori, ma cosa dovrei fare se voglio mostrare l'intera mano?

Stavo pensando di fare qualcosa come il seguente ....

public void displayHand ()
{
    for (int i = 0; i < hand.size(); i++)
    {
        System.out.println(displayCard(i));
    }
}

Quindi chiama il metodo displayCard () all'interno del metodo displayHand () in un ciclo e stampa.

Questa buona pratica di programmazione è in grado di eseguire un ciclo e stampare in un metodo? Non voglio scrivere per loops nella classe principale ogni volta che voglio mostrare le carte dei giocatori in mano. Inoltre, c'è un modo per restituire facilmente più stringhe da un metodo?

    
posta Konzy262 09.03.2016 - 12:46
fonte

1 risposta

3

Questa è una buona pratica di programmazione, perché stai separando la funzionalità di stampare la carta recuperata dal reale recupero della carta dal mazzo / oggetto.

Va bene che hai un ciclo for che stampa tutto, non importa se è nella main o nella displayHand . Quello che non vorresti fare è stampare all'interno di getHand , perché ciò mescolerebbe la funzionalità dei tuoi metodi e potrebbe rendere il tuo programma poco chiaro o difficile da usare.

Inoltre, puoi restituire più stringhe dal tuo metodo senza problemi. Prendi in considerazione la possibilità di restituire una serie di stringhe (più stringhe). La funzione stub sarebbe:

public String[] getCards()
{
    // code
}

Nota: è sempre opportuno separare l'interfaccia utente / operatore dalle classi API utilizzate nella propria applicazione.

    
risposta data 09.03.2016 - 13:04
fonte

Leggi altre domande sui tag