There is a project i have been working on - in another language - darn obsolete vba and i have been trying to push for the time to write in c++ as a much better solution - which scales to the problem properly - I am not sure it will be adopted, but i would like to hear any thoughts on methodology you might use to acheive the goal.
It is quite specialised financials data as input.
The basic framework wants to accomodate the fact that whilst the clients have very similar data they each potentially have subtle differences - stuff will be common to all, other stuff will not.
At a high level the client could also be subclassed into typeA and typeB
There are a set of tests to be run against the data - the tests have been grouped into categories, these categories will be common to all - the tests within the categories will be where main differences are found
there are quite a lot of clients!
Is it naiive to think i could somehow create a virtual client superclass that can 'know' how to construct itself from the get go and what category spin on the test functions it needs? - I mean by way of avoiding literally writing a new class for every client. - basically i am trying to avoid too much code replication - most things will be very similar, but there are enough potential differences to make just using arg values in functions say a bit of a pain.
Is it naiive to think that is a hard thing??
Maybe im not being too clear - and maybe if i cant picture it then apart from lacking the knowledge then could it also be its a bad design idea anyway and maybe its just a case of lots of constructors and overloaded functions or whatever? - Is there anything in templating that might be employed?
At present within the VBA i basically have no inheritance or nowt - the best i have come up with is a clientSpecificClass module - which can contain a category class object - which i can instansiate as one of the 7 other categoryClasses i have declared in other modules - my tests are types - sort of structs but the stupid vba does not allow me to have them as class members - so i had to resort to a global one, blah blah - whole thing is a pain to write in and very restrictive
Cheers for reading - welcome any comment.