What is the best strategy for maintaining easy to follow code when keeping things DRY means you have to pass a lot of parameters to shared functions?
In my specific case, I have a grails based app, and have implemented a system where to reference object B from object A, I have taglibs, gsp's, javascript and service code to manage that allows the user to click a link, a list of all object B's popup, allow them to select or Add a new 'B' entry and that reference then gets stored in a field in object A, This is being implemented in many different places, parameterising many things.
Keeping this DRY is becoming a bit of a nightmare to maintain, and certainly difficult for any new eyes to understand.