Во-первых, делегирование — правильное решение в данном случае (вы, по сути, скроете(инкапсулируете) дополнительный функционал)
Во-вторых, вы можете не создавать getter'ы для приватных полей, а явно передавать их делегату. Либо вы можете объявить getter'ы package protected и не бояться что-то кто может воспользоваться ими извне