in reply to Designing a thin interface

You might try looking at some of the classic Design Patterns, your problem could be solved (possibly) by any number of them. For instance, several of the Structural patterns might do the trick:

Or possibly even these more Behavioral patterns: NOTE: these links are to a C# specific site, but the UML they show and the patterns they describe are langauge independent.

In my current project, I have solved something similar by using the Mediator pattern (and a little bit of the Command pattern as well). I have a number of Report classes, each which takes a Calculation class, a Graphing class and a Request (which is where the Command pattern comes in) and then makes various calls to the Calculation modules with data in the Request, and then feeds the results to the Graphing class and then returns its output.

This allows me not only to vary the interactions of the Calculation and Graphing modules (similar maybe to your DataManager and Report), but also to re-use a my Calculation classes in a number of different situations, as well as easily allow me to add, modify and subclass my Graphing modules.

-stvn

Replies are listed 'Best First'.
Re^2: Designing a thin interface
by shemp (Deacon) on Jun 25, 2004 at 17:40 UTC
    Good advice, looks like i'll have to dust off my design patterns book. :)