I took my hands off Eclipse for a bit and thought about AudioMan’s architecture, specifically the Data Abstraction Layer (DAL) and wrote up a whole section on it. I grouped the methods of the DAL package into classes so that they are easier to manage/isolate, instead of having one large singleton class. I definitely welcome your comments.
The key to the new Data Abstraction Layer is the notion of models and mutators. A model is a bunch of data that the user interface displays in views and mutators are functions that change the models.
AudioMan is a bit more complex because the mutators don’t actually change the models directly, they change the repository and the files. When the repository changes the models are updated indirectly. As well the files can be modified outside of AudioMan so when the models are refreshed the files have to be checked. Add formatting to that and you have my brain turning to mush until I forced myself to write it all down. Now it looks pretty manageable.