Pensaci ancora.
1. YAGNI - Non ne avrai bisogno.
Hai davvero bisogno di avvolgere la funzione? Con quale frequenza e in quanti posti risolvi un nodo radice e, cosa più importante, prevedi di aggiungere un ulteriore comportamento a questo metodo in seguito?
2. Migliora davvero la leggibilità?
Questo è altamente soggettivo. Ai miei occhi, entrambe le varianti sono quasi uguali nella leggibilità. Preferirei anche il primo se non avessi davvero bisogno del wrapper perché non voglio aggiungere un comportamento in seguito, poiché è più facile eseguire il debug, un livello in meno da eseguire.
3. Prestazioni
Questa è una preoccupazione minore qui. Dubito che tu lo chiami molto spesso. Quando lo chiamate in un ciclo, potrebbe avere un strong impatto sulle prestazioni. L'overhead è trascurabile per le chiamate a singola funzione.
4. Decisione di progettazione
Vuoi nascondere completamente il membro graphDB, cioè dietro un'interfaccia? Quindi con tutti i mezzi crea un'intera astrazione di esso con tutti i metodi necessari.
Detto questo, l'aumento della leggibilità è altamente soggettivo (solo ai tuoi occhi) mentre si aggiunge un nuovo livello che potrebbe potenzialmente portare a una perdita di prestazioni. Va bene se hai bisogno di quel wrapper perché ti aspetti di aggiungere un ulteriore comportamento in seguito e il tuo codice è cosparsa di chiamate di getReferenceNode()
. Se hai solo una singola chiamata o pochissime chiamate di getReferenceNode e non prevedi di aggiungere ulteriori comportamenti in seguito, non creerò quel wrapper.