I have a signal processing pathway made of many classes. Each processing class is a composition of smaller classes, each of which have their own parameters.
Until now, I have been lazy and stored all of the processing parameters in a separate parameter class. I made this a friend
of all of the processing classes so they could just access its data members directly. However, this makes for very strong coupling between the individual blocks and the parameter class, making the design completely inflexible.
I am redesigning the code so that each small process owns it's own private data members that it needs in order to function to reduce the coupling. But now, if a new set of parameters are loaded, I need a complex method that sets all of the parameters (using accessor functions) in each of the separate processing blocks. The commands within this method would be strongly coupled to the process. How do I minimize this coupling?