Come denominare una funzione (orientamento immagine non predefinito)?

0

Ho un'interfaccia C ++ per il fornitore di video. I frame possono essere ruotati (verticale / orizzontale) come risultato delle funzioni specifiche della piattaforma.

enum class EFrameOrientation
{
    KUp, // default orientation
    KDown,
    KLeft,
    KRight
};

Class fornisce all'utente informazioni sull'orientamento:

virtual EFrameOrientation getFrameOrientation() { return EFrameOrientation::KUp; }

Inoltre esegue il rendering dei frame che possiede con

virtual bool renderCurrentFrame() = 0;
virtual bool renderCurrentFrameWithOrientation() = 0; // STUB TO RENAME

e ho aggiunto una funzione che gestisce i problemi di orientamento, dando così a un utente già un frame con EFrameOrientation::KUp -orientato.

L'orientamento non predefinito non è un bug, può essere desiderato in alcuni casi.
Tutti i nomi sottostanti mi sembrano semanticamente scorretti:

renderCurrentFrameRotated // doesn't say it's about orientation
renderCurrentFrameDefaultOriented // which orientation is default: KUp or current?
renderCurrentFrameOrientationFixed // its not bug to fix

Come sceglieresti un buon nome in questo caso?
Grazie in anticipo.

    
posta Olha Pavliuk 25.10.2017 - 15:39
fonte

1 risposta

2

Come da linee guida del codice Clean, i nomi dei metodi dovrebbero indicare chiaramente cosa sta facendo il metodo. In questo caso abbiamo un metodo che esegue il rendering di una cornice ma ruota la cornice secondo un orientamento. Questa rotazione è una trasformazione della cornice. Un altro termine mi viene in mente qui: stiamo applicando la trasformazione (rotazione / orientamento).

Il modo in cui comprendo la domanda è che per le sottoclassi è possibile applicare un orientamento diverso, magari anche in base all'istanza e non alla classe. Quindi penso che sarebbe fuorviante includere il tipo di orientamento nel nome del metodo.

Quindi il mio consiglio è di chiamare il metodo renderCurrentFrameApplyingOrientation poiché afferma chiaramente che il metodo esegue il rendering di un frame e applica una trasformazione (l'orientamento in questo caso). Raccomando anche di chiamare l'altro metodo di rendering renderCurrentFrameWithoutApplyingOrientation per rendere esplicito che il frame sarà renderizzato senza applicare la trasformazione.

    
risposta data 25.10.2017 - 16:29
fonte

Leggi altre domande sui tag