Position è la interfaccia (che hai postato all'inizio) che rappresenta una "astrazione" per ottenere un elemento, cioè in questo caso il valore di un nodo.
Perché utilizzare una interfaccia quando posso passare per parametro un riferimento ad un elemento di tipo DNode ? Poi non ho capito qual è il meccanismo che mi fa accedere ad un nodo della lista ? Con Position<E> io non passo l'elemento di un nodo ?